禁用提交按钮,直到所有隐藏的输入都有一个值
Disable submit button until all hidden inputs have a value
我有一个带有隐藏输入的简单表单,我正在尝试检查每个隐藏输入是否都有值。如果所有隐藏的输入都有一个值,则禁用或启用提交按钮。一旦用户通过jquery点击图像,就会填充输入。我试了很多种方法,好像我错过了什么。。。。
<form method="post" action="test.php">
<div class="selections" id="accordion">
<h3>title<div class='status'>Pending</div></h3>
<div class='select-form'>
<div class='images'>
<img src='images/vote.jpg' data-value='data-value'>
<br/><span>title</span><br/>description
</div>
<input type='hidden' class='image-value' name='1' value=''>
</div>
<div class='select-form'>
<div class='images'>
<img src='images/vote.jpg' data-value='data-value2'>
<br/><span>title</span><br/>description
</div>
<input type='hidden' class='image-value2' name='2' value=''>
</div>
</div>
<input id="submit_button" type="submit" class="submit" value="SUBMIT">
</form>
javascript如下所示:
$( document ).ready(function() {
var $submit = $("input[type=submit]"),
$inputs = $('input[type=hidden]');
function checkEmpty() {
// filter over the empty inputs
return $inputs.filter(function() {
return !$.trim(this.value);
}).length === 0;
}
$inputs.on('blur', function() {
$submit.prop("disabled", !checkEmpty());
}).blur(); // trigger an initial blur
});
有什么想法吗?
您可以在img.click()
上调用checkEmpty()
,并通过该函数处理禁用状态。
在这里试试:JSFiddle(点击图片)
$( document ).ready(function() {
var $submit = $("input[type=submit]"),
$inputs = $('input[type=hidden]');
function checkEmpty() {
var res = true;
$inputs.each( function(i,v){
if(v.value == ""){
res = false;
return false;
}
});
$submit.prop("disabled", !res);
}
$("img").click( function(){
$(this).parent().parent().find("input[type=hidden]").val("sdf");
checkEmpty();
});
checkEmpty(); //set disabled onload
});
您的trim函数没有按照您接受的方式运行,请按如下方式删除它:
function checkEmpty() {
// filter over the empty inputs
return inputs.filter(function() {
return !(this.value);
}).length === 0;
}
将其放入模糊函数中,以确定是否所有隐藏的输入都有非空值。
var empty=false;
$('input[type=hidden]').each(function(){
if($(this).val()==""){
empty=true;
}
});
if(empty){
//DISABLE SUBMIT
}
您在JavaScript变量中使用$,而不应该使用http://jsfiddle.net/keliix06/2f3cv2pk/
$( document ).ready(function() {
var submit = $("input[type=submit]"),
inputs = $('input[type=hidden]');
function checkEmpty() {
// filter over the empty inputs
return inputs.filter(function() {
return !$.trim(this.value);
}).length === 0;
}
inputs.on('blur', function() {
submit.prop("disabled", !checkEmpty());
}).blur(); // trigger an initial blur
});
相关文章:
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- jquery可以't隐藏输入名称为“”的表单;风格”;
- 默认情况下,在ipython笔记本中隐藏输入单元格
- 单击表单1中的按钮:更改表单2中隐藏输入的值(纯javascript)
- 如何使用 JavaScriptJQuery 将隐藏输入标签的值与选择标签的选定选项的值进行设置
- 将两个隐藏输入与简单的 JavaScript 进行比较失败
- getElementById().value未设置隐藏输入
- 为什么在下面的场景中,用于存储所选文件名和文件路径的隐藏输入字段没有在表单上生成
- 在隐藏输入上使用jQuery触发按键事件
- 使用HTML和Javascript,使用4个单选按钮显示和隐藏输入字段
- 修改隐藏输入中的json数组
- 为选中的每个复选框创建隐藏输入
- 使用数据中的值填充隐藏输入
- 将隐藏输入类型转移到我的隐藏模态/表单
- 带有隐藏输入的有序列表
- Angularjs隐藏输入字段中的文本
- 在同一页面上使用jQuery Mobile Flip Switch切换具有隐藏输入样式的图像
- 通过jQuery将动态生成的输入值传递到隐藏输入中
- 无法使用jQuery更改隐藏输入文本框的值
- HTMLJavascript-如何向输入语句添加函数并隐藏输入语句,除非选中“是”,然后取消隐藏