2012-12-27 216 views
0

可能重复:
Validate email address in Javascript?验证电子邮件客户端

如何验证邮件上使用javascript时,服务器端无法验证客户端?从我的理解中,Javascript可以关闭,那么如何实现这一点,并防止我接收PCI警告?

$(document).ready(function() { 

var clearMePrevious = ""; 

// clear input on focus 
$("#email").focus(function() { 
    if($(this).val()==$(this).attr("title")) { 
     clearMePrevious = $(this).val(); 
     $(this).val(""); 
    } 
}); 

// if field is empty afterward, add text again 
$("#email").blur(function() { 
    if($(this).val()=="") { 
     $(this).val(clearMePrevious); 
    } 
}); 

$('#submitemail').click(function() { 
    app.ajax.load({ 
     reqName : 'emailSubmit', 
     url: '$httpUrl('Bronto-OptIn')$?email=' + $('#email').val(), 
     selector : '#emailbox', 
     callback: function(responseText, textStatus) { } 
    }); 
      return false; 
}); 

}); 

<form id="emailsignup_form" name="emailsignup_form" method="post" action="$httpUrl('Bronto-OptIn', 'fid', 'information')$"> 
<div class="fl"><input class="email-signup-input" type="text" title="Enter Your Email Address" value="Enter Your Email Address" name="email" id="email" /></div> 
<div class="fl"><button class="email-signup-btn" value="Submit" name="submitemail" id="submitemail">Submit</button></div> 
<div class="clear">&nbsp;</div> 

+2

为什么能”服务器验证?无论你做什么,客户端验证都是不安全的。 – elclanrs

+1

不完全了解你的问题。您可以使用正则表达式验证客户端(类似于** ^。+ @。+(\ .. +)+ $ **)。但是,如果用户禁用JavaScript,您总是希望再次在服务器上验证输入。这个问题与PCI有什么关系? – Sam

+1

客户端验证通常只是给用户提供快速反馈,并且所有的验证都必须在服务器上重做,因为服务器必须保持其数据库不会收到不良内容,并保护自己免受恶意输入。 –

回答

0

如果客户端验证是必要的,我会把在回退为JavaScript并不是有效的情况下 -

<script type="javascript"> 
    /* Wire up form submittal */ 
</script> 
<noscript> 
    <p>JavaScript is required to use this form, please enable JavaScript in your browser!</p> 
</noscript> 

请参阅本 - How to detect if JavaScript is disabled?