Firefox 및 IE에서 제 양식이 정상적으로 작동합니다. onsubmit을 호출하면 js 함수가 호출되고 코드의 유효성이 검사되고 유효성 검사가 양호하면 양식이 제출됩니다.onsubmit 크롬에서 js 함수를 호출하지 않고 직접 양식을 제출하십시오.
그러나 크롬에서는 유효성 검사를 수행하지 않고 단순히 양식을 직접 제출합니다.
왜 그런지 모르겠지만 많은 검색을했지만 헛된 일이었습니다.
이 문제를 해결하는 데 큰 도움이됩니다.
양식 코드 :
<form name="myform" action="queryfeedback.php" method="post" onSubmit="return validateForm(myform);">
<label for="labelField_Name" id="idLabel_Name"></label>
<input type="text" name="nameField_Name" id="idField_Name" placeholder="Enter your name here"/>
<br />
<label for="labelField_EMail" id="idLabel_EMail"></label>
<input name="nameField_EMail" type="text" id="idField_EMail" placeholder="Enter your E-Mail address here" />
<br />
<label for="labelField_Message" id="idLabel_Message"></label>
<textarea name="nameField_Message" id="idField_Message" placeholder="Enter your message for us here"></textarea>
<br />
<input type="Submit" name="nameSubmit" id="idButton_Submit" value="Submit" alt="Submit Button"/>
</form>
검증 코드 :
function validateForm(form)
{
alert(form.nameField_Name.value);
//alert(formValueEMail.value);
//alert(formValueMessage.value);
if(form.nameField_Name.value=='')
{
alert("Name field is required. Please fill it in.");
form.nameField_Name.focus();
form.nameField_Name.select();
return false;
}
if(form.nameField_Name.value=='Enter your name here')
{
alert("Name field is required. Please fill it in.");
form.nameField_Name.focus();
form.nameField_Name.select();
return false;
}
if(form.nameField_EMail.value=='')
{
alert("E-Mail Address field is required. Please fill it in.");
form.nameField_EMail.focus();
form.nameField_EMail.select();
return false;
}
if(form.nameField_EMail.value=='Enter your E-Mail address here')
{
alert("E-Mail Address field is required. Please fill it in.");
form.nameField_EMail.focus();
form.nameField_EMail.select();
return false;
}
//Checking for correct format of EMail address.
var x=document.forms["myform"]["nameField_EMail"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid e-mail address");
return false;
}
if(form.nameField_Message.value=='')
{
alert("Message field is required. Please fill it in.");
form.nameField_Message.focus();
form.nameField_Message.select();
return false;
}
if(form.nameField_Message.value=='Enter your message for us here')
{
alert("Message field is required. Please fill it in.");
form.nameField_Message.focus();
form.nameField_Message.select();
return false;
}
return true;
http://jsfiddle.net/qrZ8a/3/은 아마도 당신의'validateForm' 기능은 어떤 이유로 크롬에서 완료하지 않고 죽어가, (예를 들어,이 오류로 인해 중지). 'validateForm'에 finall return 바로 전에'alert '를 넣어 프로그램 흐름이 유효한 입력에서 함수의 맨 아래에 도달했는지 확인하십시오. – apsillers