当复选框被选中时,如何禁用html所需的验证
How to disable html required validation when checkbox is checked?
我有这个现有的功能:当复选框未选中时,它将显示ul
部分
<input type="checkbox" id="cb_ship" onclick="toggle('.ship', this)" checked="checked">
<label for="cb_ship" >Same as account name</label>
<form method="post">
<ul class="ship" style="display:none;">
<li> fname <input type="text" name="fname" required></li>
<li> lname <input type="text" name="lname" required></li>
<li> age <input type="text" name="age" required></li>
<li> address <input type="text" name="address" required></li>
<li> city <input type="text" name="city" required></li>
<li> <input type="submit" value="send"></li>
</ul>
</form>
JS:
function toggle(className, obj) {
var $input = $(obj);
if ($input.prop('checked'))
$(className).hide();
else $(className).show();
}
我想做的:如果复选框被选中,所有必需的属性应该被禁用而不单击复选框。这样我就可以提交表格了。
你的函数将是这样的
function toggle(className, obj) {
var attr = false;
if (obj.is(':checked')){
attr = true;
}
$("."+className+" li input").each(function(){
$(this).prop('disabled', attr);
});
}
但是在复选框中你必须删除点(.ship)因为它会产生错误并为对象添加$ onclick="toggle('ship', $(this))
删除属性?
$('.ship').find('input').removeAttr( "required");
或禁用输入?
$('.ship').find('input').prop('disabled', true);
$('.ship').find('input').removeAttr( "required").prop('disabled', true);
像这样使用它们:
function toggle(className, obj) {
var $input = $(obj);
if ($input.prop('checked'))
$(className).hide().find('input').removeAttr("required").prop('disabled', true);
else $(className).show().find('input').attr( "required",true).prop('disabled', false);
}
要处理由于在该点设置了"required"而希望处理页面启动逻辑的情况,请从标记中删除处理程序,将其放入代码中,然后触发它:
<input type="checkbox" id="cb_ship" checked="checked">
<label for="cb_ship">Same as account name</label>
<form method="post">
<ul class="ship" style="display:none;">
<li> fname
<input type="text" name="fname" required>
</li>
<li> lname
<input type="text" name="lname" required>
</li>
<li> age
<input type="text" name="age" required>
</li>
<li> address
<input type="text" name="address" required>
</li>
<li> city
<input type="text" name="city" required>
</li>
<li>
<input type="submit" value="send">
</li>
</ul>
</form>
查看我触发处理程序的最后一部分:
function toggle(className, obj) {
var $input = $(obj);
if ($input.prop('checked')) {
console.log("checked");
$(className).hide().find('input').removeAttr("required").prop('disabled', true);
} else $(className).show().find('input').attr("required", true).prop('disabled', false);
}
$('#cb_ship').on('click change', function() {
toggle('.ship', this);
}).trigger('change');
相关文章:
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 我们可以在HTML中禁用右键单击锚标记吗
- 需要一种根据请求禁用HTML框架的方法
- HTML:禁用时可以单击锚点
- 除非填写必需的html表单,否则禁用对驱动器和桌面的访问
- ajax代码工作时,使用javascript禁用html中的链接
- 如何根据提交表单时下拉框中的值禁用html表单输入框
- 从 jQuery 中的 HTML 对象中删除禁用的属性
- 在JavaScript和HTML中禁用了选择列表
- 可以在 html' 中禁用必需='必需'验证
- HTML/Javascript:禁用某些DIV的复制和粘贴
- JavaScript / HTML - 如何禁用列表中的项目
- 在呈现HTML时禁用Firefox中的容差(或启用严格性)
- 如何使下拉选项在HTML网页禁用
- 如何通过html代码禁用特定页面的保存书签功能?
- 如何在html中禁用JavaScript功能
- 在HTML中禁用表单的所有元素,除了提交按钮
- 如何使用html标签禁用视频文件的默认下载或保存选项
- 如何在相同的html中禁用不同的复选框
- 当另一个文本框的值为HTML时禁用该文本框