Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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_Forms_Validation - Fatal编程技术网

Javascript 一组输入和一个文本区域至少需要一个值

Javascript 一组输入和一个文本区域至少需要一个值,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我有五个字段,四个文本和一个文本区域是必需的。但是,它们都不需要值。但至少有一个是这样。它们已与类“onair”分组,我想要的是尽可能将它们集成到标题中当前的validate()脚本中,或者至少显示一条警告消息,指示必须至少输入一个字段 下面是我在/head中得到的表单验证程序 <script language="javascript"> <!-- function validate(join) { // // Check for a first name.

我有五个字段,四个文本和一个文本区域是必需的。但是,它们都不需要值。但至少有一个是这样。它们已与类“onair”分组,我想要的是尽可能将它们集成到标题中当前的validate()脚本中,或者至少显示一条警告消息,指示必须至少输入一个字段

下面是我在/head中得到的表单验证程序

<script language="javascript">
<!--
function validate(join) 
{
    //
    // Check for a first name.
    //
    if (join.fname.value.length == 0)
{
        alert("Please enter your first name.");
        join.fname.focus();
            return false;
}
    //
    // Check for a last name.
    //
    if (join.lname.value.length == 0)
{
        alert("Please enter your last name.");
        join.lname.focus();
        return false;
}
    //
    // Check for an e-mail address.
    //
    if (join.email.value.length < 5)
{
        alert("An email address is required to proceed.");
        join.email.focus();
        return false;
}
    //
    // Check for a valid e-mail address.
    //
    if (join.email.value.indexOf("@",".") == -1)
{
        alert("A valid e-mail address is required to proceed.");
        join.email.focus();
        return false;
}
    // It continues.

</script>


这里有一些东西可以验证这些字段

var all = document.querySelectorAll(".onair");
var supplied = 0;
for(var i = 0;i < all.length;i++){
    var input = all[i];
    if(input.value.length > 0)
    {
        //get the value by "input.value"
        supplied++;
    }
}

if(supplied < 1){ alert("Your Message Here"); }
else{
    //do whatever after 
}
var all=document.queryselectoral(“.onair”);
提供的var=0;
对于(变量i=0;i0)
{
//通过“input.value”获取值
提供++;
}
}
如果(提供的<1){alert(“此处为您的消息”);}
否则{
//以后干什么都行
}

我假定您希望我们使用作为参数传递的联接表单验证方法

如果是,您可以使用
querySelectorAll
获取您的输入

function validate(join) {
  onairInputs = join.querySelectorAll('.onair')

  onairInputs.forEach((x) => console.log(x.value))
}
我发现您的字段中有一些默认值,因此您需要一些自定义逻辑,因为检查值是否为空将不起作用。

函数验证(join)
function validate(join) 
{
//
// Check for a first name.
//
if (join.fname.value.length > 0)
{   
    // do more validation if you want
    return true;
}
//
// Check for a last name.
//
else if (join.lname.value.length > 0)
{
    return true;
}
//
// Check for an e-mail address.
//
else if (join.email.value.length >0)
{
    if (join.email.value.length < 5)
    {
       alert("An email address is required to proceed.");
       join.email.focus();
       return false;
    }
    else if (join.email.value.indexOf("@",".") == -1)
    {
      alert("A valid e-mail address is required to proceed.");
      join.email.focus();
      return false;
    }
    else
    {
        return true;
    }  
}


// It continues.

else if(join.fname.value.length == 0)
{  
    alert("Please enter your first name.");
    join.fname.focus();
    return false
}
else if(join.lname.value.length == 0)
{
   alert("Please enter your last  name.");
   join.lname.focus();
   return false
}
// It continues.
} End function
{ // //查一下你的名字。 // 如果(join.fname.value.length>0) { //如果需要,请执行更多验证 返回true; } // //查看姓氏。 // else if(join.lname.value.length>0) { 返回true; } // //检查电子邮件地址。 // 否则如果(join.email.value.length>0) { 如果(join.email.value.length<5) { 警报(“需要电子邮件地址才能继续”); join.email.focus(); 返回false; } else if(join.email.value.indexOf(“@“,”)=-1) { 警报(“需要有效的电子邮件地址才能继续。”); join.email.focus(); 返回false; } 其他的 { 返回true; } } //它还在继续。 else if(join.fname.value.length==0) { 警告(“请输入您的名字。”); join.fname.focus(); 返回错误 } else if(join.lname.value.length==0) { 提醒(“请输入您的姓氏”); join.lname.focus(); 返回错误 } //它还在继续。 }端函数

尽管all[i].value部分可以是您自己的表达式进行验证。我会将“input.onair”更改为“.onair”,因为表单有一个textarea标记。是的,为true,我会更改我的答案;)非常感谢。我添加了join.facebook.focus();并返回false;把注意力集中在球场上。你帮了大忙!嘿,这就是我们来这里的目的!.forEach表达式在旧浏览器上不起作用。安全赌注使用常规迭代,尽管Lambda表达式干净高效,但它们是ES6标准。不懂技术的人会使用较旧的浏览器。它似乎是es5,支持似乎很好。谢谢你的建议。我用占位符属性来解决这个问题。哦,对了,公平竞争。我想知道我在ES6 Mozilla Post上看到了什么。沿着他们的路线。上面的例子是一个很好的方法,只是想知道旧的浏览器。
function validate(join) 
{
//
// Check for a first name.
//
if (join.fname.value.length > 0)
{   
    // do more validation if you want
    return true;
}
//
// Check for a last name.
//
else if (join.lname.value.length > 0)
{
    return true;
}
//
// Check for an e-mail address.
//
else if (join.email.value.length >0)
{
    if (join.email.value.length < 5)
    {
       alert("An email address is required to proceed.");
       join.email.focus();
       return false;
    }
    else if (join.email.value.indexOf("@",".") == -1)
    {
      alert("A valid e-mail address is required to proceed.");
      join.email.focus();
      return false;
    }
    else
    {
        return true;
    }  
}


// It continues.

else if(join.fname.value.length == 0)
{  
    alert("Please enter your first name.");
    join.fname.focus();
    return false
}
else if(join.lname.value.length == 0)
{
   alert("Please enter your last  name.");
   join.lname.focus();
   return false
}
// It continues.
} End function