使用JavaScript验证中的文本字段和复选框

使用JavaScript验证中的文本字段和复选框,javascript,jquery,html,validation,checkbox,Javascript,Jquery,Html,Validation,Checkbox,我正在尝试一个完整的验证表单函数。我只遗漏了两件事: 将名称字段限制为仅按字母顺序排列的字符和空格 验证是否至少选中了一个复选框,并且最多允许7个复选框 这是我到目前为止得到的。。。复选框验证似乎被忽略了,我不确定这是否是因为我没有在onSubmit中调用函数。。。。这就是为什么我想要一个完整的代码 至于名称验证,我不确定如何将此代码放在validateform3函数中 或者至少将其与表单关联,复选框验证也是如此 名称验证JS JAVASCRIPT HTML 要获取选中复选框的总数,请替换 va

我正在尝试一个完整的验证表单函数。我只遗漏了两件事:

将名称字段限制为仅按字母顺序排列的字符和空格 验证是否至少选中了一个复选框,并且最多允许7个复选框 这是我到目前为止得到的。。。复选框验证似乎被忽略了,我不确定这是否是因为我没有在onSubmit中调用函数。。。。这就是为什么我想要一个完整的代码

至于名称验证,我不确定如何将此代码放在validateform3函数中 或者至少将其与表单关联,复选框验证也是如此

名称验证JS

JAVASCRIPT

HTML


要获取选中复选框的总数,请替换

var numberOfChecked = $('input:checkbox:checked').length;

至于你的名字验证函数的问题,你可以直接在validateform3函数中调用它。如果该函数的代码来自不同的文件,则必须包含该js文件。然后,您的代码可以如下所示:

function validateform3(){
    // ....
    var valid_english_name = englishonly($('#name')); // or whatever your 'name' input ID is
}
作为旁注,如果由于某些验证错误而要取消表单提交,可以只使用e.preventDefault;或返回错误;无需重新绑定提交事件处理程序

此外,studentid.value和Email.value等代码可能不起作用。因为您使用的是jquery,所以可以用jquery替换它们

希望这能有所帮助。

这里有一个值得你思考的问题

JS


谢谢如果我对复选框使用数组呢?你是什么意思?在我的小提琴中,不需要数组——它只查看页面上所有可用的复选框。你使用数组做什么?我尝试了你建议的方法,但没有效果,我仍然可以提交表单,而无需选择任何复选框,例如名称。。。我做了以下工作我在一个单独的js标记下插入了名称脚本,并以与您建议的不起作用相同的方式调用它,我放置了正确的ID名称。。。这里有一个预览。。在您更改为$'input:checkbox[name=type]:checked'.length'之后,numberOfChecked的值是多少?该值是一个变量,我正在为复选框name=ckb[]value=john使用数组。。。name=ckb[]value=edward….etcTry add console.lognumberOfChecked;添加到代码中,并查看浏览器调试器中的变量。
<form action="connect.php" method="get" id="form3" 
      name="form3" onsubmit="return validateForm3()">
var numberOfChecked = $('input:checkbox:checked').length;
var numberOfChecked = $('input:checkbox[name=type]:checked').length;
function validateform3(){
    // ....
    var valid_english_name = englishonly($('#name')); // or whatever your 'name' input ID is
}
var inputname, length1, length2, checkboxcount = 0;
$('.clickme').on('click', function () {
    inputname = $('.myname').val();
    length1 = inputname.length;
    length2 = inputname.replace(/[^a-zA-Z\s]/gi, '').length;
    if (length1 != length2)
       {
        $('#errorspan').append('Only letters are allowed in a name');
        validname = 0;
        }
    else
      {
       validname = 1;
       }
    $('.checkme').each(function(){
        if( $(this).is(':checked') )
        {
         checkboxcount = checkboxcount + 1;
        }
    });
    if(checkboxcount < 1)
    {
             $('#errorspan').append('At least one checkbox must be checked');
             validbox = 0;
    }
    else if(checkboxcount > 6)
    {
             $('#errorspan').append('No more than 6 checkboxes can be checked');
             validbox = 0;
    }
    else{
         validbox = 1;
    }

  if (validname === 1 && validbox == 1)
     {
      alert("Everything Valid");
      }
  else
    {
     alert("Not Valid! You have work to do!");
     }
});