cab*_*ret 43 jquery google-chrome cross-browser attr jquery-attributes
不知道为什么这不起作用.
当人们点击我的应用程序的"编辑"按钮时,禁用的文本字段变得可编辑:
$("#bewerken").click(function(e) {
$("input[disabled='disabled']").removeAttr('disabled');
});
Run Code Online (Sandbox Code Playgroud)
然后我想在用户保存时再次禁用文本字段; 我将此代码绑定到我的保存按钮:
$("#save_school_changes").click(function(e) {
//stuff
$.ajax({
type: "POST",
url: "/school/save_changes",
data: { //stuff },
success: function(data)
{
$("#feedback_top").html("<p>" + data['message'] + "</p>").slideDown('slow').delay(2000).slideUp();
$("input[type='text']").attr('disabled', 'disabled');
}
});
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该再次禁用文本字段.但是,这似乎不适用于Chrome.它在Firefox中有效.我还没有机会在IE或Safari中测试.有什么方法可以在Chrome中使用它吗?非常感谢!
Nea*_*eal 77
如果您使用的是jQuery <1.6,请执行以下操作:
jQuery("input[type='text']").attr("disabled", 'disabled');
Run Code Online (Sandbox Code Playgroud)
如果您使用的是jQuery 1.6+:
jQuery("input[type='text']").prop("disabled", true);
Run Code Online (Sandbox Code Playgroud)
请参阅此问题:.prop()vs .attr() 以获取参考原因.
或者你可以尝试这个:
$('input:text').attr("disabled", 'disabled');
Run Code Online (Sandbox Code Playgroud)
对我来说,这些答案都不起作用,但我终于找到了一个。
我需要这个用于 IE-
$('input:text').attr("disabled", 'disabled');
Run Code Online (Sandbox Code Playgroud)
我还必须为 Chrome 和 Firefox 添加这个 -
$('input:text').AddClass("notactive");
Run Code Online (Sandbox Code Playgroud)
和这个 -
<style type="text/css">
.notactive {
pointer-events: none;
cursor: default;
}
</style>
Run Code Online (Sandbox Code Playgroud)
如果您要从输入中删除所有禁用的属性,那么为什么不这样做:
$("input").removeAttr('disabled');
Run Code Online (Sandbox Code Playgroud)
然后ajax成功后:
$("input[type='text']").attr('disabled', true);
Run Code Online (Sandbox Code Playgroud)
确保在提交之前使用删除禁用的属性,否则它不会提交该数据。如果需要在更改之前提交,则需要使用readonly代替。
| 归档时间: |
|
| 查看次数: |
179674 次 |
| 最近记录: |