1

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

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

4

3 回答 3

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();
于 2012-08-30T19:48:29.570 回答
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
于 2012-08-30T19:37:40.257 回答
1

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

var singleValues = $("select:nth-child(2) option:selected").text();
于 2012-08-30T19:37:56.673 回答