JQuery只附加一次

时间:2012-12-15 12:10:34

标签: javascript jquery

尝试在Facebox中加载自定义表单submisson错误框,当测试一些代码时我很难获得.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;

  });
});

1 个答案:

答案 0 :(得分:2)

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