项目总结-js简单易忽略的问题

1 JQuery操作radio
     1)获取按钮选中的值:$("input:radio:checked").val();
     2)选中或者取消选中某个Radio的方法,可以通过添加属性或者删除属性checked来完成
     $("#radioId").attr("checked",true);$("#radioId").removeAttr("checked");

2 ajax请求时dataType的作用
     dataType设置为某种类型(如json),但请求返回的数据格式非该类型时,ajax会走入异常返回的函数error function(e){}中,该分支应该尽量记录异常信息便于错误排查。async:false,异步标识为false可以使JS顺次执行,默认为true。如果对JS执行顺序要求同步,则可设置改标识为false,如果失效则应该检查该属性的名称是否正确。

3 页面直接跳转到某个页面的方法
     window.location.href="";

4 Resource interpreted as Document but transferred with MIME type application/json: "http://localhost:8080/addResource".
  使用form提交时返回的是Documment的。

5 对于具有display:none样式的表单

     在提交时是以hidden的形式提交了,我有一个表单是select ,但是处于某个display:none的Div中,结果提交后JS报错:
Uncaught InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('hidden') does not support selection.
display:none的表单的表单是以hidden形式提交的,我的select虽然是不显示的,但是添加了option选项,导致此问题。直接删掉该不需要显示的select表单就好了。此外,disable的表单,是不会被提交的。如果不想让某个表单可操作同时又需要提交,应该使用readonly属性,而不是disable属性。

6 js的动态拼接语句

      1)在JS中拼接html元素时,对字符串需要用引号引住,如果是在引号内需要添加字符串,应交替使用另外一种引号引住。例如:在如下JS中动态拼接显示列表时,第一个单元格td的内容是一个radio,需要动态设置一个οnclick="checkRadio(this,localUrl)"   属性,而属性值指向的是函数的第二个参数是一个字符串,需要使用引号表示字符串,而外层属性使用了双引号,则属性内的字符串则应该交替使用单引号,即:οnclick="checkRadio(this,'localUrl')",如果localUrl使用转义双引号,则JS会抛出则异常,异常原因是外层的双引号和内层双引号冲突。这种场景下必须使用单、双引号交替。

function setImageTable(){
	var tBody = $("#imageTableId");
	tBody.find("tr").remove();
	if (resources != null) {
		for ( var i = 0; i < resources.length; i++) {
			var item = resources[i];
			var tr = $("<tr/>");
			tr.append("<td><input type=\"radio\" name=\"mediaId\" value=\""+item.id+"\"  οnclick=\"checkRadio				(this,'"+item.localUrl+"')\"/></td>");
			tr.append("<td><img src='"+item.localUrl+"' width='100' height='100'/></td>");
			tr.append("<td>" + formatText(item.name)+ "</td>");
			tr.append("<td>" + formatText(item.description)+ "</td>");
			tBody.append(tr);
		}
	} 
}

       2)undefined和字符串'undefined'不是同一个东西
        我用JS拼接了一个Radio表单的值,希望通过判断该值是否为空来判断Radio是否被选中。而在上面的函数setImageTable的第一行由于item并没有属性id,导致radio的value是'undefine'而不是undefined关键字而判断错误。正常改正后,如果没有选中radio则,checked值是未定义关键字的。

function save(){
	//获取选择按钮的值
	var checked = "";
	checked = $('input:radio:checked').val();
	if(checked==undefined&&msgType != 'text'){
		alert("请选择要发送的消息素材!");
		return;
	}
}

         结论:

         编程是细致活,工具则是越用越灵活,各种小问题解决后也整理了一箩筐,积累积累! 工作以来一直都是做后台开发,没有专门学习过javascript,只是凭借对java的了解,以及语言想通的特点参与页面的开发。也能应对项目中页面的开发工作,虽然碰到各种简单的问题,总结起来也丰富了自己JS方面的知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值