2013-12-09 86 views
1

我有一個酒店的預訂表單,客戶可以選擇與哪個房間共享一個房間。 每一行代表一個客人的名字,並有一個下拉菜單(),其中所有其他客人的身份證號碼作爲選項。刪除相同類別的所有選擇框中的選項,但單擊該選項時除外

當第一排的客人決定與客人id = 3共享一個房間時,我想排一個下拉框來顯示一個3,第三行顯示一個和所有其他行,有1個和3個選項從他們的選擇框中刪除。

我已經得到了下面的代碼,但.not(this),不工作,任何指針,爲什麼會受到熱烈讚賞。

這裏是形式

<?php 
    for($a=0;$a<15;$a++) 
    { 
     echo " 
<tr id=".($a+1)."><td>".($a+1)."</td> 
    <td><select name='title[]'> 
     <option value='Ms'>Ms</option> 
     <option value='Mrs'>Mrs</option> 
     <option value='Mr'>Mr</option> 
     <option value='Dr'>Dr</option> 
     </select></td> 
    <td><input type='text' name='firstname[]' size='10'></td> 
    <td><input type='text' name='lastname[]' size='10' ></td> 
    <td><input type='text' name='email[]'></td> 
    <td><input type='text' name='passport_no[]'></td> 
    <td><input type='date' name='dob[]' size='10'></td> 
    <td><select name='room_pref[]' class='room_pref'> 
     <option value='TWIN'>twin</option> 
     <option value='DOUBLE'>double</option> 
     <option value='SINGLE'>single</option> 
     </select></td> 
    <td><select name='share_w[]' class='share'>"; 
    for($b=1;$b<16;$b++) 
    { 
     echo "<option value=".$b.">".$b."</option>"; 
    }  

    echo "<option value ='ALONE'>Alone</option> 
</select></td> 
    <td><input type='text' name='diet[]'></td> 
    <td><input type='text' name='allergies[]'></td> 
</tr>"; 

?>

這裏是我的jQuery

$('.share').change(function(){ 
    var shareW=$(this).val(); 
    $(".share option[value="+shareW+"]").not(this).remove(); 
}): 
+0

什麼是您的實際代表(最小/ [SSCCE](http://sscce.org/))HTML?你的PHP執行服務器端,它發送給JavaScript的瀏覽器來處理什麼? –

回答

3

this這裏指selectoption,你需要不上.share收集申請和不在option

嘗試

$(".share").not(this).children("option[value="+ this.value +"]").remove(); 

你也可以避免單擊處理程序並再次創造.share集合。

var $share = $('.share'); 
$share.change(function(){ 
    $share.not(this).children("option[value="+ this.value +"]").remove(); 
}); 
+0

感謝不僅是答案,更正了我的理解 –

+0

@MarkGilchrist不客氣.. :) – PSL

+0

您最近編輯的優點是什麼? –

相關問題