我有两个选择选项,但我发现它们在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 :(得分: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();