我有以下文本框输入代码。我无权访问它以向其添加默认值,所以我使用此 Jquery 代码添加值然后禁用输入但它不发送添加的值。我将如何添加值但不允许他们更改它。我打算使用“隐藏”,但我希望他们看到它只是无法更改它。
$("input[type='text'][name='ShipCity']").val('Madison').attr('disabled', 'disabled');
<input type="text" style="background-color: rgb(255, 255, 0);" value="" name="ShipCity" maxlength="45" size="25">
最佳答案
编辑:另一种选择是禁用这些字段,并在您提交表单时启用它们:
$("input[type='text'][name='ShipCity']").val('Madison').attr('disabled', 'disabled');
$("form").submit(function() {
$(':input', this).removeAttr('disabled');
});
我认为这无论如何都应该有效。
原答案:
这将在 keypress
事件上返回 false;
。
此外,它使用 jQuery 的 .data()
存储默认值,并在 blur
事件处理程序中检查该值。
这样做的原因是可以在没有按键事件的情况下(通过 GUI 菜单)输入一个新值。
$("input[type='text'][name='ShipCity']")
.val('Madison') // give default value
.data('defaultVal', 'Madison') // remember default value
.keypress(function() {
return false; // prevent keypress events
})
.blur(function() {
if(this.value !== $.data(this, 'defaultVal')) // set back to the default
this.value = $.data(this, 'defaultVal'); // if it was changed via
}); // the GUI menu
编辑:
这是一个允许您执行此操作的版本,因此您只需键入一次默认值。 (否则完全相同。)
示例: http://jsfiddle.net/cdzuR/
$("input[type='text'][name='ShipCity']")
.data('defaultVal', 'Madison') // You only need to give the default once
.val(function() { return $.data(this, 'defaultVal'); })
.keypress(function() {
return false;
})
.blur(function() {
if(this.value !== $.data(this, 'defaultVal'))
this.value = $.data(this, 'defaultVal');
});
关于javascript - 设置不允许更改的输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673142/