我想要一个完整的"验证表格"功能。我只缺少两件事:
这是我到目前为止所得到的...复选框验证似乎被绕过了,我不确定它是否因为我没有调用&中的函数#34;的onSubmit" ....这就是为什么我想拥有一个"一个"完整代码,
至于名称验证,我不确定如何将此代码放在validateform3函数中 或至少将其与表格相关联,同样适用于复选框验证。
NAME VALIDATION JS
function englishonly(inputtxt)
{
var letters = /^[A-Za-z]+$/;
if(inputtxt.value.match(letters))
{
return true;
}
else
{
alert('Please type your name in english');
return false;
}
}
JAVASCRIPT
<script type="text/javascript">
function validateForm3() {
if (studentid.value == "")
{
studentid.style.borderColor = '#ff0000';
alert("Please enter your Student ID");
studentid.focus();
return false;
}
var x=document.forms["form3"]["studentid"].value;
if (! /^[0-9]{11}$/.test(x)) {
studentid.style.borderColor = '#ff0000';
studentid.style.backgroundColor = "#fdf0af";
alert("The Student ID you entered is incorrect.");
return false;
}
if (Email.value == "")
{
Email.style.borderColor = '#ff0000';
alert("Please enter your e-mail");
Email.focus();
return false;
}
var x=document.forms["form3"]["Email"].value;
if (x.indexOf("@")=== -1)
{
Email.style.borderColor = '#ff0000';
Email.style.backgroundColor = "#fdf0af";
alert("Please enter a valid email");
return false;
}
if (Name.value == "")
{
Name.style.borderColor = '#ff0000';
alert("Please enter your Name in English");
Name.focus();
return false;
}
}
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#Regestir").click(function () {
var numberOfChecked = $('input:checkbox:checked').length;
// $.isNumeric( $("#studentid").val() )
if( $("#studentid").val()!="" && $("#studentid").val()!="" && $("#Email").val()!="" && $("#Name").val()!="")
{
if (numberOfChecked == 0 || numberOfChecked>7)
{
alert("Only 7 courses are allowed.");
$("form").submit(function(e){
e.preventDefault();
});
}
else
$("form").unbind('submit').submit();
//$("#form3").submit();
}
else
{
alert ("You should enter all form values");
$("form").submit(function(e){
e.preventDefault();
});
}
});
});
</script>
HTML
<form action="connect.php" method="get" id="form3"
name="form3" onsubmit="return validateForm3()">
答案 0 :(得分:0)
要获取已选中复选框的总数,请替换
var numberOfChecked = $('input:checkbox:checked').length;
与
var numberOfChecked = $('input:checkbox[name=type]:checked').length;
关于您的姓名验证englishonly
功能的问题,您可以直接在validateform3
功能中调用它。如果该函数的代码来自不同的文件,则必须包含该js文件。然后你的代码看起来像这样:
function validateform3(){
// ....
var valid_english_name = englishonly($('#name')); // or whatever your 'name' input ID is
}
作为旁注,如果由于某些验证错误而要取消表单提交,则可以仅使用e.preventDefault();
或return false;
而不重新绑定submit
事件处理程序。
此外,studentid.value
和Email.value
等代码可能无效。由于您使用的是jquery,因此可以使用jquery selectors替换它们。
希望这有帮助。
答案 1 :(得分:0)
这是一个FIDDLE供您考虑。
JS
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!");
}
});