-1

尝试在 Facebox 中加载自定义表单提交错误框,当测试一些代码时,我无法让 .append() 追加一次以上。如果两个示例错误都失败了,它只会加载附加并将一个加载到facebox,但如果一次失败一个,它将显示应该显示的正确错误,而不是同时显示两个..

抱歉,如果代码混乱/效率不高,javascript 不是我的强项。

  $('#signup').submit( function() {
 var fname = $("#fname").val();
 var lname = $("#lname").val();
 var uname = $("#username").val();
 var pass = $("#password").val();
 var passc = $("#passwordc").val();
 var email = $("#email").val();                   

 if(/^[a-zA-Z0-9_]*$/.test(uname) == false) {
           //alert('Usernames can be alphanumeric but may include an underscore.');
       $("#errorholder").append('<tr><td style="margin: 0;">Usernames can be alphanumeric but may include a underscore.</td></tr>');
 }
 else if(/^[a-zA-Z']*$/.test(fname) == false) {
      //alert('First name may not contain numbers or symbols.');
      $("#errorholder").append('<tr><td style="margin: 0;">First name may not contain numbers or symbols</td></tr>');
 }
 else if(/^[a-zA-Z']*$/.test(lname) == false) {
      //alert('Last name may not contain numbers or symbols.');
 }
 else if(!$("#fname").val()){
      //alert('First name required');
 }
 else if(!lname){
      //alert('Last name required');
 }
 else if(!uname){
      //alert('Userame required');
 }
 else if(pass!=passc){
      //alert('Passwords don\'t match');
 }
 else if(pass.length<5){
      //alert('Password must be at least 5 characters.');
 }
 else if(!email){
      //alert('Email required');
 }  
 else if (!$("input:radio[name='gender']:checked").val()) {
          // alert('Please select gender.');
 }
 jQuery.facebox({ div: '#piksplay' });
 return false;

  });
});
4

1 回答 1

2

您正在尝试测试多个条件,但您使用的是else if. 一旦您的代码找到一个true条件,它就不会测试任何其他内容,因此每次append只会触发一个条件。这些都需要单独if声明。

于 2012-12-15T12:14:31.657 回答