我已经对此有所了解,但我似乎无法找到关于不同浏览器如何处理事物的任何信息.
小提琴:http://jsfiddle.net/ugzux/
正如您所看到的,我有一个带有禁用(通过javascript)提交按钮的表单.
我希望能够将click事件绑定到它,所以我可以在我允许提交表单(即再次启用该按钮)之前对输入需要修复的内容进行一些爵士指示.
但是,禁用提交按钮也显然会禁用绑定到按钮的任何点击事件,即使它们在禁用后被绑定 - 任何想法如何解决这个问题?
实际上,一种解决方案是停止禁用按钮,而是有一个事件
$('form').submit(function(event){
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
但是我想知道禁用输入和javascript事件的来龙去脉,如果有解决方法,因为我之前从未遇到过这种行为.
现在当它第一次加载html页面时,我的复选框就是这样创建的:
<input type="checkbox" id="CBOX1" name="CBOX1" onclick="onCBOX(this)" disabled/>
Run Code Online (Sandbox Code Playgroud)
在同一个html中的函数中:
boolean checked = true;
document.theForm.elements['CBOX1'].checked = true;
Run Code Online (Sandbox Code Playgroud)
出于某种原因,在稍后在页面上调用该函数时,不会检查复选框值.是因为当我第一次创建复选框时,我创建了它而没有"已检查"属性?然后当我为它分配一个值时,该元素似乎不再包括checked属性,就像我检查页面的来源一样.它还是一样的......
<input type="checkbox" id="CBOX1" name="CBOX1" onclick="onCBOX(this)" disabled/>
Run Code Online (Sandbox Code Playgroud)
为简单起见,我确信使用AJAX对此元素的其他属性进行了更改,但我不知道为什么检查属性没有被转移...有什么替代方案?
我想在单击时启用文本框.但是,当我单击文本框时,没有任何反应.我相信这是jQuery选择器的一个问题.为什么这不起作用?
<script>
$(document).ready(function() {
$(':input').click(function() {
$(this).removeAttr('disabled');
});
});
</script>
<input type="text" value="123" disabled="disabled" />
Run Code Online (Sandbox Code Playgroud)
注意:我尝试了$('input')和$(':input')来选择文本字段.都没有奏效.