2012-06-04 92 views
-4

我需要提交與薩姆斯值的多個下拉形式的幫助,檢查值降下來之前提交

條件:如果email沒有選擇報警郵件需要選擇其他檢查已經選擇

<form method="post" action="record_save.php"> 
    <div id="student_records"> 
     <select name="select1"> 
      <option value="0">None</option> 
      <option value="1">email</option> 
      <option value="2">firstname</option> 
      <option value="3">lastname</option> 
     </select> 
     <select name="select2"> 
      <option value="0">None</option> 
      <option value="1">email</option> 
      <option value="2">firstname</option> 
      <option value="3">lastname</option> 
     </select> 
     <select name="select3"> 
      <option value="0">None</option> 
      <option value="1">email</option> 
      <option value="2">firstname</option> 
      <option value="3">lastname</option> 
     </select> 
     <!-- until --> 
     <select name="select10"> 
      <option value="0">None</option> 
      <option value="1">email</option> 
      <option value="2">firstname</option> 
      <option value="3">lastname</option> 
     </select> 
     <input type='submit' name='submit'> 
    </div> 
</form> 
+0

那麼問題是什麼? –

+0

這很簡單,並且已經在許多網站和論壇上反覆討論過。只是谷歌它。 –

+0

嗨感謝您的回覆,我已嘗試單下拉其工作,需要做多次下拉 $(功能(){ $('form.studentform')。submit(function(){ if( $( 'student_records。 ')VAL()=' 郵件 '){ 警報(' 請選擇電子郵件'); 返回FALSE; }! }); }); – user1433824

回答

1

這應該做你想做的。

我迭代選定的選項並計算每次出現的次數。在第一次檢測到重複時,我添加了一條錯誤消息。我也確定選擇了一封電子郵件。如果有任何錯誤,我們會提醒他們,否則表單會被提交。

(function ($) { 

    var form = $('#student_records').parent(); 

    form.submit(function (event) { 

     event.preventDefault(); 

     var selected = {}, 
      errors = []; 

     form.find('option:selected').each(function (index, elem) { 

      var val = $(elem).val().trim(); 

      if (! selected[val]) { 
       selected[val] = 1; 
       return; 

      } else if (selected[val] == 1) { 

       errors.push('Already selected: ' + $(elem).text()); 
      } 

      selected[val] += 1; 
     }); 

     if (! selected[1]) { 
      errors.push('Must select email.'); 
     } 

     if (errors.length) { 
      alert(errors.join("\n")); 
      return; 
     } 

     form.submit(); 
    }); 

}) (jQuery); 
+0

嗨,謝謝對於答覆「其他檢查值已選擇」,例如,如果我有第一個下拉選擇名字,並嘗試在3下拉選擇相同的選項,它應該警告說,你已經選擇了這個選項, – user1433824

+0

我改進了我的答案包括這一點。 –

0

您應該使用JQuery或JavaScript來檢查值。像如下:

if (validateTheForm()) { 
    $('#yourForm').submit(); 
} 

function validateTheForm() { 
$(':text, select, textarea').each(function() { 
    if ($(this).val().trim().length == 0) { 
     $(this).addClass('errorField'); 
      return false; 
    } else { 
     $(this).removeClass('errorField').addClass('successField'); 
     return true; 
    }  
}); 
};