js,html,vue常用问题

1. 强转JS变量为数字类型

在js里 当数据库拉出下拉框数值为0时,放到前台select里会被认为是空,从而不显示option=0的那一项,需要Number强转为数字。

test = Number(test);   

2. 获取js对象数据类型

alert(typeof test)   // 用于打印js数据的类型

3. 让前台控件不可编辑readonly/disabled

相同点:如果设为true。则form属性不能被编辑、文本框不能输入文字。
不同点: 1、样式不同。 readonly只是使文本框不能输入,外观没有变化。 disabled会使文本框变灰。
2、有效范围不同。readonly只针对input和textarea之类可以输入文本有效,disabled对所有的表单元素都有效。
3.能否获取鼠标焦点。readonly可以聚焦,disabled不能
4.是否回传数据。readonly会将值传递出去,及通过request.getParameter(‘name’)可以获取文本框的值。disabled不会

<input type="text" id="test" />
var test=‘hello world’
$("#test").val(test);
$("#test").attr("readonly",true);     //js中为前台赋值,并设置只读
$("#test").attr("disabled",true);

4.搜索框即时搜索问题

vue中v-on:input可以监控组件,只要内容发生变化,就会触发

<input v-on:input="search()"  type="text"  id="test" name="test"  /> 

5.隐藏前台控件

style="display:none"可以隐藏控件,不占用页面位置,但功能正常运行

 <button type="button" id="add" style="display:none">新增</button>


 $("#add").attr("style","display:none;");

6. select框多选

multiple支持select框多选,获取数据时,是一个object对象,引入select2模块

  <script th:src="@{/xxx/js/select2/select2.js}" type="text/javascript"></script>

6.1 新增时,从数据库获取 bookList,并展示

   <select id="test" name="bookid"   multiple="multiple" >
		<option :value="0">请选择书籍</option>
		<option v-for="book in bookList" :value="book.bookname">
		{{book.bookname}			
		</option>
    </select>  

6.2编辑时,从数据库数据获取bookList,调整格式,并给前台赋值

方式1:

	var tmplist = [];
	$.each(this.bookList, (index, item)=>{
							tmplist.push(item.bookname);
						});
   $("#test").val(tmplist).select2();

方式2

	var bookList = ['bookname1','bookname2']
	$("#test").val(bookList).select2();

7. vue中 ,select多选框被选中某一个时,触发某种操作

通过watch监测vue变量,一旦发生变化,就会触发

var testVm = new Vue({
			el: "#test-edit",  
			data(){
				return {
					allgroupchange:"false",
					...
				  };
		       	},
		   methods: {
		    },    	
		   mounted(){
			},

		  watch:{
				allbookchange(newVal, oldVal) {
					if(newVal){
						this.allgroupchange = false;
						...想做操作的代码块
						 
					}
				},
			},
	});

设置触发函数

$("#test").on("change", function(){
			    valueObj = $("#test").val()
				for(value in valueObj){
						if(valueObj[value] == "0"){
							me.allbookchange = "true";
						}
				}
		});

8. Textarea输入内容后台存储换行问题,前台展示换行问题,及内容过长截取问题

8.1 首先在前台调整,在加载页面时,设置输入触发函数,这样用户可以通过敲击回车换行

<textarea id="test"  name="test"  rows="5"></textarea>

$(document).ready(function(){				

			//处理backgroud的enter键 start
			$("#test").on("keydown", function(event){		
				if (event.keyCode == 13){					
					$("#test").append("\r\n");
					event.stopPropagation();
					//event.preventdefault();
				}
			});
			//处理backgroud的enter键 end
			
		}); 

8.2 提交时,正常获取前台页面填写内容,写入数据库的已经包含换行符

  $("#test").val().trim()

8.3 编辑时,正常从数据库获取并赋值

var test = ‘sss’
 $("#test").val(test);

8.4 前台展示,内容过长可截取,substr截取字符串,replace解决前台展示换行问题

 {
                            	 
                      "data": "test",
       			  "render": function(data, type, row, meta) {
            					//判断值的长度是否超过30,如果是则截取
               				if (data.length > 30) {
                   			//return '<span>' + data.substr(0, 30) + '...</span>';
                   			data =  data.substr(0, 30)+'...'
               			return '<p>' + data.replace(/</g,"&lt;") + 	'</p>'
               			} else {
                    			//return '<span>' + data + '</span>';
                    	 return '<p>' + data.replace(/</g,"&lt;") + '</p>'
               				}

      				 	},
                       "sWidth": "440px"
                             
   },
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值