2012-12-03 116 views
0

它必须是一个小问题,但我无法找到它。也许你们其中一个可以帮助我。Javascript Form Vallidation not working

的Javascript

function white_space(field) 
    { 
    field.value = field.value.replace(/^\s+/, ""); 
    } 
    function validate(){ 
    var formname=document.reg_form; 
    var fname=formname.fname.value; 
    var mess=""; 

    var uname=formname.prodName.value; 
    if(uname==""){ 
    mess= mess+"User Name cannot be blank\n"; 

    } 
    var pass=formname.prodPrice.value; 
    if(pass==""){ 
    mess= mess+"Password cannot be blank\n"; 
} 

if(mess){ 
    alert(mess); 
    return false; 

    } 
} 

HTML表单

<form class="form-signin" action="#" onSubmit="return validate();" name="reg_form"> 
    <h2 class="form-signin-heading">Sign-In</h2> 
    <input type="text" class="input-block-level" name="prodName" placeholder="Email address" onKeyPress="white_space(this)"> 
    <input type="password" class="input-block-level" name="prodPrice" placeholder="Password" onKeyPress="white_space(this)"> 
    <label class="checkbox"> 
     <input type="checkbox" value="remember-me"> Remember me 
    </label> 


    <button class="btn btn-large btn-primary" type="submit">Sign in</button> 
    </form> 

错误

enter image description here

浏览器不显示空字符串错误。

+2

在哪里它不工作?它提醒但不阻止表单提交?它没有提醒吗?它是否提交表格?以某种方式尝试调试 - 在整个Javascript中更多地发出警报以跟踪进度或其他事情。查看浏览器的控制台,以查看Javascript遇到的任何错误。 – Ian

回答

1
你的情况

此行

var fname=formname.fname.value; 

掷错误而执行验证功能,因为不存在与fname没有元素到形式,评论它,你的罚款 http://jsbin.com/oxawil/1

+1

我可以添加吗,'fname'甚至没有在代码中被进一步使用。 – dzavala

+0

是的,看起来像不是从以前使用的表格中删除的东西,在我的猜测 – dmi3y

+0

是的,它从另一个表格中删除。 – AppSensei

0

不知道什么行为是不受欢迎的(你没有说),我猜测它与验证函数成功时缺乏正返回值有关。代码只是落后了。

+0

当我有空字符串时,浏览器不会弹出错误。 – AppSensei

0

你可以使用jQuery更容易地选择你的html的一部分。查看jsFiddle这个工作解决方案。

请注意,检查javascript中的值并不安全,并假设这些值在您的安全级别中是正确的。所以更常见的是提交表单并返回,如果输入是失败的。

$.ajax('url', function(json) { 
    var msg = ''; 
    switch(json.status) { 
     case 'name': 
      msg += 'name not set'; 
      break; 
     case 'pwd': 
      msg += 'password not set'; 
      break; 
    } 
    if(msg != '') { 
     alert(msg); 
    } 
}