jQuery验证并禁用输入字段
jQuery Validate and disabled input field
我使用下面的bootstrap作为下拉选择器,然后它与关联的jQuery函数一起显示input
type="text"
中的choosen字段。但是用户仍然可以在输入字段中编写自己的内容,我希望避免这种情况。我尝试在输入字段上使用disabled
属性,但如果这样做,jQueryValidate插件将忽略它并授予权限,即使它是空的。
是否可以使用type="text"
"停用"输入字段,而不使用disabled
属性,这样我仍然可以使用jQuery Validate。
<div class="form-group">
<div class="input-group">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Choose<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#" id="a">1</a></li>
<li><a href="#" id="b">2</a></li>
<li><a href="#" id="c">3</a></li>
<li><a href="#" id="d">4</a></li>
<li role="separator" class="divider"></li>
<li><a href="#" id="e">5</a></li>
</ul>
</div>
<input type="text" id="abc" autocomplete="off" name="abc" placeholder="Select *" class="form-control" aria-label="...">
</div>
</div>
没有直接的解决方案。。。如果该字段通过disabled
属性被"禁用",jQuery Validate插件将始终忽略它。(从逻辑上讲,验证用户无法编辑的内容没有意义。)
但是有一个变通办法。如果使用readonly
属性而不是disabled
,则可以对其进行验证。
<input type="text" name="abc" readonly="readonly" />
演示:http://jsfiddle.net/85pu1oe5/
似乎需要使用readonly="readonly"
属性http://www.w3schools.com/tags/att_input_readonly.asp
不管这个问题有多严重,都有一个非常简单的解决方法。为什么不在jquery.validate.js忽略的禁用字段之外再使用一个隐藏字段呢?
例如
<input type="text" name="name" class="form-control" value="<?php echo htmlentities($user['name']); ?>" disabled>
<input type="hidden" name="name" class="form-control" value="<?php echo htmlentities($user['name']); ?>">
对我来说效果很好。也是如此
<select style="display:none;"><option value="sample">Sample</option></select>
显示:无;将完全隐藏元素(空格和全部)。它仍然是启用的,因此它的数据仍然被发送。试试
请确保将ignore:".ignore"添加到validate.js中,因为它启用了所有隐藏字段。
您最好的选择是依赖validator.showErrors()
方法并手动验证此禁用的输入。
当我需要验证术语复选框时,我也遇到过类似的情况,但它被设计为在用户滚动术语文本之前被禁用。这就是我最终想到的:
var message = "You must accept the Terms and Conditions in order to proceed with registration";
var termsValidator = $('#step-5 form').validate({
rules: {
acceptTnC: "required"
},
messages: {
acceptTnC: message
},
submitHandler : function (form) {
// Need to manually validate, cause checkbox is disabled by default and validation
// skips disabled fields
if(!form.acceptTnC.checked) {
termsValidator.showErrors({
acceptTnC: message
})
}
else {
submitForm();
}
}
});
$('[name="acceptTnC"]').on('change', function (e) {
termsValidator.element(e.target);
})
底部对于启用复选框后切换错误消息非常重要,用户可以点击它打开或关闭
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在HTML输入字段中添加不可删除的后缀
- 互斥单选按钮和相应的输入字段
- 在IE9中的输入字段中输入焦点最近按钮
- 选中单选框时将属性添加到输入字段
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 输入字段将't获取更新的值
- 如何选择多个输入字段并删除所需的属性
- 输入字段,只接受0到12之间的数字
- 单击鼠标,用MySQL数据填充html表单输入字段
- 使用jquery将输入字段转换为文本
- Model中的Typeahead返回空值以形成输入字段
- 如何从查询字符串中的输入字段发回文本
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- 将值传递给jquery创建的输入字段