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

原创 2014年11月27日 17:23:09

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,需要动态设置一个onclick="checkRadio(this,localUrl)"   属性,而属性值指向的是函数的第二个参数是一个字符串,需要使用引号表示字符串,而外层属性使用了双引号,则属性内的字符串则应该交替使用单引号,即:onclick="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+"\"  onclick=\"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方面的知识。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Failed to read the 'selectionStart' property from 'HTMLInputElement': The in

ReactJs 使用了 一个antd组件: 如果你用了组件识别不了的属性, 比如:上面使用了 type=”number” 那么就会有这个错;其他也应该类似,你可以查看你在组件或者标签里面是否使用了...

js控制输入框光标位置(setSelectionRange详解)

问题描述前段时间碰到一个需求:在表单中有一个字段叫金额,用户希望点击该输入框后(focus),能够自动为其金额数字后加上“万元”两个字。 虽然这个需求可以通过其他的设计方式规避(例如在文本框后加入“...

Uncaught InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement'

不能使用val()

JS获取文本框焦点光标位置、选中起始位置、终止位置、选择内容

Demo:点击下载Dmo 参考文献: 最近在segmentfault上看到它的日期输入控件,感觉挺有意思。好吧,动手写一个,加到自己的代码库里吧。       然后问题来了,在上面图...

jqplot导出柱状图异常 Uncaught InvalidStateError

当使用jqplot导出bar chart为图片时,会抛出Uncaught InvalidStateError: An attempt was made to use an object that is...

常用js函数--个人项目总结

chatRecordsListHTML = chatRecordsListHTML.replace(/\/g,'"/>'); \S 非空字符串 //发送消息成功,添加到消息框 chatRecord...

ie11中设置audio的currentTime报错InvalidStateError

环境:win7 32位,ie11 要做一个切换歌曲功能:Sspan.on(downEvent, function () { switchTime = au1[0].currentTime; ...
  • dragoo1
  • dragoo1
  • 2015年07月27日 11:22
  • 3070

Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename,...

错误信息:Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename...

Java Web类路径,项目路径的获取问题

//类加载根路径 String classPath = this.getClass().getResource("/").getPath();//类加载根路径 URL xmlPath = this.g...

javaweb文件上传路径在windows和linux上的兼容性问题

最近做项目的时候遇到这个问题,于是开始研究。 1.问题起源: 是什么原因导致了问题的发生呢?其实是因为windows和linux路径不同。 windows下面文件的路径为 而linux下面文件的路径为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:项目总结-js简单易忽略的问题
举报原因:
原因补充:

(最多只允许输入30个字)