Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两个输入字段之一是必需的_Javascript_Jquery - Fatal编程技术网

Javascript 两个输入字段之一是必需的

Javascript 两个输入字段之一是必需的,javascript,jquery,Javascript,Jquery,我有两个输入字段,一个是file,另一个是textarea <input class="input_field" type="file" name="title" /> <textarea class="input_field" name="info"></textarea> 我有。我们如何实现类似于if-else的条件,使其成为所需的字段之一?请参见此提琴 提交表单时,我修改了您的代码,使每个元素都有一个输入字段类 $(function(){

我有两个输入字段,一个是
file
,另一个是
textarea

<input class="input_field" type="file" name="title" />
<textarea class="input_field" name="info"></textarea>
我有。我们如何实现类似于
if-else
的条件,使其成为所需的字段之一?

请参见此提琴

提交表单时,我修改了您的代码,使每个元素都有一个输入字段类

$(function(){
        $('form').submit(function (e) {
            var failed = false;
           $(".input_field").each(function() {
               if (!$(this).val()) {
                    failed = true;   
               }
           });

            console.log(failed);
            if (failed === true) {  
                e.preventDefault();
            }
        });
});
看到这把小提琴了吗

提交表单时,我修改了您的代码,使每个元素都有一个输入字段类

$(function(){
        $('form').submit(function (e) {
            var failed = false;
           $(".input_field").each(function() {
               if (!$(this).val()) {
                    failed = true;   
               }
           });

            console.log(failed);
            if (failed === true) {  
                e.preventDefault();
            }
        });
});

根据你的问题,只有两种可能的情况:

  • 如果一个字段或两个字段都已填充,则用户通过验证
  • 如果未填写任何字段,则用户验证失败
这可以通过检查任一输入的值轻松完成。只要一个不是空的,用户就通过了测试。该if/else条件可以写成:

if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
    // Passed validation 
} else {
    // Failed validation
}
检查错误的一个简单模式是创建一个错误标志,当一个或多个验证检查失败时,将引发该标志。手动提交表单之前,请在脚本末尾评估此错误标志:

$(function(){
    $('form').on('submit', function(e) {
        e.preventDefault();

        // Perform validation
        var error = false;

        if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
            alert('Passed validation');
            error = false;
        } else {
            alert('Please fill up one field');
            error = true;
        }

        // Check error flag before submission
        if(!error) $(this)[0].submit();
    });
});

请参见此处的工作小提琴:

根据您的问题,只有两种可能的情况:

  • 如果一个字段或两个字段都已填充,则用户通过验证
  • 如果未填写任何字段,则用户验证失败
这可以通过检查任一输入的值轻松完成。只要一个不是空的,用户就通过了测试。该if/else条件可以写成:

if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
    // Passed validation 
} else {
    // Failed validation
}
检查错误的一个简单模式是创建一个错误标志,当一个或多个验证检查失败时,将引发该标志。手动提交表单之前,请在脚本末尾评估此错误标志:

$(function(){
    $('form').on('submit', function(e) {
        e.preventDefault();

        // Perform validation
        var error = false;

        if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
            alert('Passed validation');
            error = false;
        } else {
            alert('Please fill up one field');
            error = true;
        }

        // Check error flag before submission
        if(!error) $(this)[0].submit();
    });
});

请参阅此处的工作提琴:

检查表单内部是否至少完成了一个,打破循环,选择提交,否则返回false

$(函数(){
$('form')。关于('submit',函数(e){
var doneOnce=false;
$(this).children().each(function()){
if($(this.val()){
doneOnce=真;
return false;//return false将中断。每个循环
}
});
警报(doneOnce)
如果(!doneOnce){
e、 预防默认值();
}
});
});

检查表单内部是否至少完成了一项,打破循环,选择提交,否则返回false

$(函数(){
$('form')。关于('submit',函数(e){
var doneOnce=false;
$(this).children().each(function()){
if($(this.val()){
doneOnce=真;
return false;//return false将中断。每个循环
}
});
警报(doneOnce)
如果(!doneOnce){
e、 预防默认值();
}
});
});

您可以用Javascript编写代码来验证表单。您必须创建onclick或onsubmit函数,该函数将检查输入字段是否为空。您可以编写类似以下代码的代码:

<script>
  function validateForm() {
    var fstname=document.getElementById("fname").value;
    var lstname=document.getElementById("lname").value;

    if(fstname===null || fstname===""){
        alert("Plese choose a file.");
        return false;
    }
    else if(lstname===null || lstname===""){
      alert("Plese type file info.");
      return false;  
    }
    else{ 
        return confirm("Your file: "+fstname+" and it of type "+lstname);

    }
}

函数validateForm(){
var fstname=document.getElementById(“fname”).value;
var lstname=document.getElementById(“lname”).value;
如果(fstname==null | | fstname===“”){
警报(“请选择文件”);
返回false;
}
else if(lstname==null | | lstname===“”){
警报(“请输入文件信息”);
返回false;
}
否则{
返回确认(“您的文件:+fstname+”且类型为“+lstname”);
}
}


名字:

姓氏:您可以用Javascript编写代码来验证表单。您必须创建onclick或onsubmit函数,该函数将检查输入字段是否为空。您可以编写类似以下代码的代码:

<script>
  function validateForm() {
    var fstname=document.getElementById("fname").value;
    var lstname=document.getElementById("lname").value;

    if(fstname===null || fstname===""){
        alert("Plese choose a file.");
        return false;
    }
    else if(lstname===null || lstname===""){
      alert("Plese type file info.");
      return false;  
    }
    else{ 
        return confirm("Your file: "+fstname+" and it of type "+lstname);

    }
}

函数validateForm(){
var fstname=document.getElementById(“fname”).value;
var lstname=document.getElementById(“lname”).value;
如果(fstname==null | | fstname===“”){
警报(“请选择文件”);
返回false;
}
else if(lstname==null | | lstname===“”){
警报(“请输入文件信息”);
返回false;
}
否则{
返回确认(“您的文件:+fstname+”且类型为“+lstname”);
}
}


名字:

姓氏:使用alert Message尝试手动代码使用alert Message尝试手动代码这不是很好的可伸缩性-如果OP想要向表单添加另一个输入,那么JS也需要更改。@DavidJones好吧,OP只询问了验证两个字段的问题,我想他不是在寻找可伸缩性。如果你想谈论可伸缩性,你必须重构你的代码来考虑对<代码> .npPixField,而不是简单地一次迭代它们。简言之,在不进一步了解OP打算在什么上下文中使用代码的情况下,我们将不知道可伸缩性是否会成为一个问题。这不是一个很好的可伸缩性-如果OP想在表单中添加另一个输入,那么JS也需要更改。@DavidJones好吧,OP只询问了验证两个字段,我想他不是在寻找可伸缩性。如果你想谈论可伸缩性,你必须重构你的代码来考虑对<代码> .npPixField,而不是简单地一次迭代它们。简而言之,如果不进一步了解OP打算在什么上下文中使用代码,我们就不知道可伸缩性是否会成为一个问题。