2012-08-30 62 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

相关问题