javascript中的两个选择选项

时间:2012-08-30 19:23:35

标签: javascript jquery html

我有两个选择选项,但我发现它们在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>

我花了很多天没有运气 谢谢你的时间

3 个答案:

答案 0 :(得分:2)

无法很好地理解您的代码。您可以尝试以下方面的帮助:

要获取第一个选择元素的选定值(值属性),请使用:

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

要获取第一个选择元素的选定值(值属性),请使用:

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

要在第一个选项中禁用第一个选项,请选择名为“infmenu”:

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

要禁用名为“infmenu”的第二个选择中的第一个选项:

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

要获取第一个选择元素的显示文本,请使用:

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

要获取第二个选择元素的显示文本,请使用:

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

答案 1 :(得分: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

答案 2 :(得分:1)

您想要选择第二个选择标记。所以你必须在第2行更改 jquery选择器

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