2012-08-30 64 views
1

我有兩個選擇選項,但我發現它們之間的JavaScript併發症很少。 這裏是我的javascript代碼:在javascript中的兩個選擇選項

function displayVals() { 
    var singleValues = $("select option:selected").text(); //to stay slected 
    $("#hiddenselect").val(singleValues);     //hidden field of second select option 
    $("samp").html("" + singleValues);    // this to insert text between samp tags 
    $("select > option:first").prop("disabled", "disabled") // this to disable first option 
    } 

    $(document).ready(function(){ 
    $("select").change(function() { 
     displayVals(); 
    }); 
    displayVals(); 

    $("select#menucompare").change(function() { 
     $("#aform").submit();     // second select options to submit 

    }); 
     $("select#infmenu").change(function() { 
     $("#infform").submit();     // first select options to submit 

    });   
}); 

現在我想到的是: - 只有第一個選擇的選項(第一個選項被禁用),還需要第二次選擇選項也(第一個選項被禁用)

這裏是我的html代碼 我的第一選擇選項:

<form action="" id="infform" method="post"> 
     <select id="infmenu" name ="infmenu" size="1" class="select" onchange="submitinfform()" > 
     <option value="0" >Please Select your country</option> 
     <option value="<?php echo $row9['id'] ;?>" <?php if ($_SESSION['infmenu'] == $row9['id']) { echo " selected='selected'"; } ?> ><?php echo $row9['name'] ;?></option><?php } ?> 
     </select> 
    <input type="hidden" name="hiddenselect" value="<?php echo $infmenu; ?>" /> 
    </form> 

這第二個選擇選項

<form id="aform" method="post"> 
    <select id="menucompare" name ="menucompare" size="1" class="select" onchange="submitaform()"> 
     <option value="0">Select one</option> 
     <option value="west" <?php if ($menucompare == "west") { echo " selected='selected'"; } ?> >West</option> 
     <option value="est" <?php if ($menucompare == "est") { echo " selected='selected'"; } ?> >Est</option> 

    </select> 
     <input type="hidden" name="hiddenselect" value="<?php echo $menucompare ; ?>" /> 

</form> 

我對這個多天花費沒有運氣 感謝您的時間

+0

對不起,但我真的不明白你在這裏問什麼。你需要在語法上清理一下這個問題。 – Josh

+0

編輯我的quesstion,但我不知道它現在清楚了,對不起我的英文不太好 –

+0

沒問題,我不是想要變得卑鄙,只是努力瞭解你需要什麼幫助:) – Josh

回答

1

您使用jQuery的選擇是$("select option:selected")。這意味着「找到所有<option>選定的標籤,並且是<select>元素的子標籤。」

你有兩個<select>元素,所以你的選擇器是匹配他們兩個。如果你想匹配一個特定的,你需要改進你的選擇器。由於第二個ID屬性已有,因此請嘗試使用$("#menucompare option:selected")

變化:

var singleValues = $("select option:selected").text(); //to stay slected 

要:

var singleValues = $("#menucompare option:selected").text(); //to stay slected 
+0

它修復了文本出現,現在它出現的文字只來自第二,好,但它錯過了第一個問題,是第二個選擇選項(第一個選擇選項仍然啓用)這個'$(「select> option:first」)。prop( 「禁用」,「禁用」)'它只禁用第一個選擇選項,我還希望下拉選擇選項被禁用第一個選項 –

+0

它修復了出現的文本,現在它只顯示文本,從第二個,好的,但它錯過第一個問題是:第二個選擇元素(第一個選擇選項仍然啓用)這個'$(「select> option:first」)。prop(「disabled」,「disabled」)'它只禁用第一個選項首先選擇元素,我也想在第一個操作中被禁用第二選擇元素。 thx –

+0

'$(「select> option:first)'應該選擇第一個

1

您想選擇第二個選擇標記。所以你必須在第2行更改jQuery選擇

var singleValues = $("select:nth-child(2) option:selected").text(); 
+0

它將文本出現,現在它只出現在第二個文本中,但它錯過了第一個問題,第二個選擇選項(第一個選擇選項仍然被啓用)例如這個$(「select> option:first」)。prop(「禁用「,」禁用「 )'它只禁用第一個選擇選項,我還希望下拉選擇選項被禁用第一個選項 –

+0

它固定文本出現,現在它只出現文本從第二,好,但它錯過的第一個問題是:第二個選擇元素(第一個選擇選項仍然啓用)這個'$(「select> option:first」)。prop(「disabled」,「disabled」)'它只在第一個select元素中禁用第一個選項,我也想在第二選擇元素的第一選項中被禁用。 thx –

2

無法理解你的代碼好。下面是一些幫助,您可以嘗試:

要獲得選擇的值的第一選擇要素使用(value屬性):

$("#infmenu").val(); 

爲了得到第一個選擇元素使用的設定值(value屬性):

$("#menucompare").val(); 

先禁用選項,先選擇所謂的 「infmenu」:

$("option", "#infmenu").first().attr("disabled", "disabled"); 

要禁用第一個選項在第二選擇名爲「infmenu」:

$("option", "#menucompare").first().attr("disabled", "disabled"); 

爲了得到第一選擇要素使用的顯示文本:

$("option:selected", "#infmenu").text(); 

要獲得第二選擇元件使用的顯示文本:

$("option:selected", "#menucompare").text(); 
+0

我想禁用兩個選擇元素中的第一個選項,稱爲「infmenu」和「menucompare」 –

+0

更新了答案。請檢查。 – closure

相關問題