表单input中disabled提交后得不到值的解决办法

表单input中disabled提交后得不到值的解决办法,第1张

input的字段当为disabled时时无法获取数值得,所以尽量不要用这个,我们可以用readonly带替代,即可解决这类问题。

放在form表单中提交后得不到该值。 

将disabled="disabled" 改为 readonly = "readonly" 即可 ,按照W3C的规范

设置为disabled的input将会有下面的限制: 

1不能接收焦点 

2使用tab键时将被跳过 

3可能不是successful的 

设置为readonly的input将会有下面的限制: 

1可以接收焦点但不能被修改 

2可以使用tab键进行导航 

3可能是successful的 

只有successful的表单元素才是有效数据,也即是可以进行提交。disabled和readonly的文本输入框只能通过脚本进行修改value属性。 

一、来看看这两个属性在效果和使用上的区别。

1readonly是要锁定这个控件,通过在界面上无法修改他(但是通过javascript可以修改他)。

2 disabled 和readonly有相同的地方也是可以锁定这个控件用户不能改变他的值,但是disabled的更彻底一些,他是要使你完全不能使用他,包括改变他的背景颜色(不信,你去修改一个被disabled掉的input文本框,你发现你是徒劳),如果是checkbox则不能选中他。

3 所有控件都有disabled 属性,但是不一定有readonly属性,如select 下拉框。

(1)text

(2) checkBox

(3)select下拉选择框(这里只能显示disabled和非disabled的区别,因为select 没有readonly属性

(4)button按钮

说明:点击被readonly掉的按钮照样可以触发事件,但是被disabled掉的按钮就无法使用了不管上面有没有事件。

(5)div

说明:将div设置disabled属性之后,整个div都灰掉了,但是文本框里面还是可以输入内容的。

注意:select下拉选择框是没有readonly属性的

参考原文链接: >

1楼的方法有局限性, 只能是所有文本框的name属性都相同才能起作用

但是根据题意, 不可能所有的文本框的name属性都相同

我稍做修改 使用 documentgetElementsByTagName() 方法

<html>

<body>

<input name="txt1" type="text" />

<input name="txt2" type="text" /><br />

<input name="txt3" type="text" />

<input name="txt4" type="text" /><br />

<input type="button" value="锁定" onclick="lock('true')" />

<input type="button" value="解锁" onclick="lock('false')" />

</body>

<SCRIPT LANGUAGE="JavaScript">

<!--

function lock(flag){

var txtArrs = documentgetElementsByTagName('input');

for(var i=0; i<txtArrslength; i++){

var txt = txtArrs[i];

if(txttype == 'text'){

if(flag == 'true'){

txtdisabled = true;

}else{

txtdisabled = false;

}

}

}

}

//-->

</SCRIPT>

</html>

代码中的问题:选中是 check=“check” ,单选按钮同一个name中只能选择一个(设置name='a'),没有选择onchange事件,只是在加载的时候判断一次 ,肯定没变化

修改后的代码:

<script language="javascript">

var a1="";

windowonload = function(){

a1= documentgetElementsByName("cc")value;

changeaa();

};

function changeaa(aa){

a1= aa;

if (a1== "长方形")//若是长方形则type="text" id="A"与id="B"可输入

{

documentgetElementById("A")removeAttribute("disabled");

documentgetElementById("B")removeAttribute("disabled");

documentgetElementById("C")setAttribute("disabled", "disabled");

}

else if (a1=="三角形")

{

documentgetElementById("A")removeAttribute("disabled");

documentgetElementById("B")removeAttribute("disabled");

documentgetElementById("C")removeAttribute("disabled");

}

else if (a1=="圆")

{ documentgetElementById("A")removeAttribute("disabled");

documentgetElementById("B")setAttribute("disabled", "disabled");

documentgetElementById("C")setAttribute("disabled", "disabled");

}

}

</script>

<form method=post name=form>

<br>

<input type="radio" name="cc" value="三角形" checked="checked" onchange="changeaa(thisvalue);"/>

三角形

<br>

<input type="radio" name="cc" value="长方形" onchange="changeaa(thisvalue);"/>

长方形

<br>

<input type="radio" name="cc" value="圆" onchange="changeaa(thisvalue);"/>

<br>

边长一:

<input type="text" id="A" name="sideA" disabled="disabled">

边长二:

<input type="text" id="B" name="sideB" disabled="disabled">

边长三:

<input type="text" id="C" name="sideC" disabled="disabled">

<input type="submit" value="send" name=submit>

</form>

假定需要disabled的类为 class1$("class1")is(":disabled")addClass("disabled");$("class1")is("not:disabled")removeClass("disabled");然后添加 class1的 CSSclass1disabled {background:#ccf;}这只是个大体的思路,具体的实施方案根据你的网页来自行调整吧,jQuery不是万能的,有的时候也要搭配CSS选择器,JS,和XHTML等

如下;

<input type="text" id="test1" value=""/>

js

documentgetElementById("test1")readOnly="readonly";只读

documentgetElementById("test1")readOnly="";可读

documentgetElementById("test1")disabled="disabled";失效

documentgetElementById("test1")disabled="";有效

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。[1]

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

应该用 prop("disabled") 有则返回true吧没有返回false, 千万别用 attr

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档 *** 作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 60+、FF 15+、Safari 20+、Opera 90+等。

在jQuery迅速发展的同时,一些大的厂商也看中了商机。2009年9月,微软和诺基亚公司正式宣布支持开源的jQuery库,另外,微软公司还宣称他们将把jQuery作为Visual Studio工具集的一部分。他将提供包括jQuery的智能提示、代码片段、示例文档编制等内容在内的功能。微软和诺基亚公司将长期成为jQuery的用户成员,其他成员还有Google,Intel,IBM,Intuit等公司。

2009年1月,jQuery 13版发布,它使用了全新的选择符引擎Sizzle,在各个浏览器下全面超越其他同类型JavaScript框架的查询速度,程序库的性能也因此有了极大提升。这一版本的第2个变化就是提供live()方法,使用live()方法可以为当前及将来增加的元素绑定事件,在13版之前,如果要为将来增加的元素绑定事件,需要使用livequery插件,而在13版中,可以直接用live()方法。

2010年1月,也是jQuery的四周年生日,jQuery 14版发布,为了庆祝jQuery四周岁生日,jQuery团队特别创建了jquery14com站点,带来了连续14天的新版本专题介绍。

在13及更早版本中,jQuery通过JavaScript的eval方法来解析json对象。在14中,如果你用的浏览器支持,则会使用原生的JSONparse解析json对象,这样对json对象的书写验证则更为严格。比如:{foo: "bar"}的写法将不会被验证为合法的json对象,必须写成{"foo":"bar"}。如果你的程序打算升级到14版本,那么这一点要尤其注意。

以上就是关于表单input中disabled提交后得不到值的解决办法全部的内容,包括:表单input中disabled提交后得不到值的解决办法、js用disabled属性控制input怎么获取页面值、求js控制页面内所有文本框的disabled属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10152506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存