Php 放置异常后html表单不工作

Php 放置异常后html表单不工作,php,javascript,html,exception,Php,Javascript,Html,Exception,我使用JS创建了异常,这样用户只允许在html表单字段中输入数字。这是很好的工作,但问题是,提交按钮不再工作了。如果我删除了异常代码,提交按钮工作得很好!我不明白问题出在哪里。有人能帮忙吗?提前谢谢 例外情况如下: function validateNum(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode(

我使用JS创建了异常,这样用户只允许在html表单字段中输入数字。这是很好的工作,但问题是,提交按钮不再工作了。如果我删除了异常代码,提交按钮工作得很好!我不明白问题出在哪里。有人能帮忙吗?提前谢谢

例外情况如下:

function validateNum(evt) {
  var theEvent = evt || window.event;
  var key = theEvent.keyCode || theEvent.which;
  key = String.fromCharCode( key );
  var regex = /[0-9]|\./;
  if( !regex.test(key) ) {
    theEvent.returnValue = false;
    if(theEvent.preventDefault) theEvent.preventDefault();
  }
}


function validate()
{

 if( document.myForm.ic.value == "" ||
           isNaN( document.myForm.ic.value ) ||
           document.myForm.ic.value.length != 12)
   {
     alert( "Please provide your correct IC Number!" );
     document.myForm.ic.focus() ;
     return false;
   }else{
     // Put extra check for data format
     var ret = validateNum();
     if( ret == false )
     {
          return false;
     }
   }
以下是我的html表单操作:

<form name="myForm" method="post" action="nonuum_reg.php" onsubmit="return(validate());">

这是输入字段和提交按钮:

 <input name="ic" type="text" id="ic" maxlength="12" size="45" onkeypress='validateNum(event)'/>

<input type="submit" value="Apply" />

尝试在you=r else close中添加一个返回true

...

else{
     // Put extra check for data format
     var ret = validateNum();
     if( ret == false )
     {
          return false;
     }

   return true;
}


这也应该对您有所帮助(不是同一个问题,而是同一个代码):

试着用这个作为我对您的问题的评论的解释:

<form name="myForm" method="post" action="nonuum_reg.php" onsubmit="validate(event);">
    <input name="ic" type="text" id="ic" maxlength="12" size="45" onkeypress='validateNum(event)'/>
    <input type="submit" value="Apply" />
</form>
<script>
    function validateNum(evt) {
        var theEvent = evt;
        var key = theEvent.keyCode || theEvent.which;
        key = String.fromCharCode( key );
        var regex = /[0-9]|\./;

        if( !regex.test(key) ) {
            theEvent.returnValue = false;
            if(theEvent.preventDefault) theEvent.preventDefault();
        }
    }

    function validate(evt){
        if( document.myForm.ic.value == "" || isNaN( document.myForm.ic.value ) || document.myForm.ic.value.length != 12) {
            evt.preventDefault();

            alert( "Please provide your correct IC Number!" );
            document.myForm.ic.focus() ;
            return false;
        } 
    }
</script>

函数ValidateEnum(evt){
var theEvent=evt;
var key=theEvent.keyCode | | theEvent.which;
key=String.fromCharCode(key);
var regex=/[0-9]\./;
如果(!正则表达式测试(键)){
theEvent.returnValue=false;
如果(theEvent.preventDefault)theEvent.preventDefault();
}
}
功能验证(evt){
if(document.myForm.ic.value==“”| | isNaN(document.myForm.ic.value)| | document.myForm.ic.value.length!=12){
evt.preventDefault();
警告(“请提供正确的IC号码!”);
document.myForm.ic.focus();
返回false;
} 
}

您仍然应该在PHP控制器上创建验证,以防止用户关闭浏览器上的javascript。

您无法调用表单提交调用的validate()函数中的validateum(),因为事件不同。试试下面我的答案。谢谢你的回答:)让我试一试&然后我会让你知道:)我能要求更多的帮助吗?如何修改代码以验证电子邮件??'函数validateEmail(){var emailID=document.myForm.mail.value;atpos=emailID.indexOf(“@”);dotpos=emailID.lastinexof(“.”);if(atpos<1 | |(dotpos-atpos<2)){alert(“请输入正确的电子邮件ID”)document.myForm.mail.focus();return false;}return(true)}和函数validate(事件){if(document.myForm.mail.value==“”){alert(“请提供您的有效电子邮件!”);document.myForm.mail.focus();return false;}否则{//对数据格式var ret=validateEmail();if(ret==false){return false;}return true;}太棒了!!再次感谢:)&非常抱歉,回复太晚。。你真的帮我减轻了痛苦:)祝你愉快:)啊哈应该在发帖前测试一下,对不起。我不知道您是否熟悉jQuery和YUI。他们有很好的验证方法,我最喜欢的是。jqueryui->感谢@bleuscyther的关注:)顺便说一句,它已经解决了:)