Javascript:如果所有文本字段为空,则阻止提交
javascript: prevent submit if all text fields are empty?
我使用这个javascript禁用我的表单提交按钮,直到用户在textarea字段中键入。一旦文本区被填充,提交按钮将不再被禁用。
然而,虽然这是为一个单一的文本区域工作,我现在想找到一种方法,使这项工作,这样,如果我有四个文本输入字段,然后保持提交按钮禁用,直到他们都不是空的/填充文本。
下面是我现在使用的:
<form action='"includes/welcomestats.php'" method='"post'" id='"form1'" onSubmit='"if (this.display_name.value == '') {return false;}'">
<input type='"text'" name='"display_name'" id='"display_name'" maxlength='"30'" placeholder='"Display Name'">
<input type='"submit'" class='"welcome-submit2'" name='"submit'" value='"Next ->'" id='"submit'"/>
</form>
<script>
$(function(){
$("#submit").submit(function(e){
if($("#display_name").val()==""))
{
e.preventDefault();
}
});
});
</script>
但现在我添加更多的文本输入字段到我的表单,所以我需要脚本保持我的提交按钮禁用,直到所有的文本字段填充,谁能帮助我请?
我想添加这些文本字段到我的表单:
<input type='"text'" name='"public_email'" id='"public_email'" maxlength='"50'" placeholder='"Email Address'">
<input type='"text'" name='"phone'" id='"phone'" maxlength='"30'" placeholder='"Phone Number'">
<input type='"text'" name='"age'" id='"age'" maxlength='"2'" placeholder='"Display Age'">
您可以使用.filter
方法获取所有空输入元素,然后检查长度。
if ($('#form1 input').filter(function(){return $(this).val().length == 0;}).length > 0) {
e.preventDefault();
}
尝试使用:
<script>
$(function(){
$('form input').each(function(){
if($(this).is(':empty')){
$('form #submit').preventDefault();
}
});
});
</script>
使用:http://jsfiddle.net/qKG5F/641/
<input type="submit" id="register" value="Register" disabled="disabled" />
(function() {
$('form > input').keyup(function() {
var empty = false;
$('form > input').each(function() {
if ($(this).val() == '') {
empty = true;
}
});
if (empty) {
$('#register').attr('disabled', 'disabled'); // updated according to http://stackoverflow.com/questions/7637790/how-to-remove-disabled-attribute-with-jquery-ie
} else {
$('#register').removeAttr('disabled'); // updated according to http://stackoverflow.com/questions/7637790/how-to-remove-disabled-attribute-with-jquery-ie
}
});
})()
您需要使用OR操作符- ||
如果display_name
为空或者public_email
为空等等
$(function(){
$("#submit").submit(function(e){
if($("#display_name").val()=="" || $("#public_email").val()=="" || $("#phone").val()=="" || $("#age").val()=="")
{
e.preventDefault();
}
});
});
给你想要包含在这个验证中的所有文本字段一个class="required"
之类的类,然后你可以这样做
var empty = $('.required').filter(function(){ return $(this).val() == "" }).length;
if(empty === 0){
//Enable your submit button all text fields have a value
}
试试这个函数:
function checkInputs(form) {
var inputs, all,
status = true;
if (form && form instanceof jQuery && form.length) {
inputs = form.find("input[type=text]");
all = inputs.length;
while (all--) {
if (!inputs[all].value) {
status = false;
break;
}
}
return status;
}
}
在这里演示:http://jsbin.com/afukir/1/edit
编辑:我已经添加了instanceof
,以确保这个函数只会继续,如果表单实际上是一个jQuery对象
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 带有验证和隐藏字段值的提交按钮
- 添加和删除隐藏字段数组中的值,而不提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 检索要提交的字段的标记位置
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 角度,材料形式只说提交尝试后需要字段
- 提交表单时,显示或识别隐藏的必填字段并将其集中
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- ReactJS表单提交如何访问字段值
- 按enter键时,jQuery UI自动完成字段未提交
- 如何在表单提交后清除输入字段
- 如何防止某些形式's个字段无法提交
- Magento表单验证,表单提交时没有有效字段
- 获取所有输入字段并保留文本字段中的值,即使在使用 javascript 和 php 提交按钮后也是如此
- 单击按钮提交输入字段值
- 通过电子邮件发送表单通过javascript提交字段发送表单
- 轨道.jQuery表单提交字段模糊
- 表单提交字段为空白.使用Javascript隐藏和显示字段