我正在尝试使用jQuery单击按钮时检索两个选择字段的值。以下是相关的代码片段。
我在外部文件中有这个:
$(document).ready(function() {
$("#classSubmit").click(function() {
console.log($("dept").text());
console.log($("num").val());
});
});
这是生成我的一个select语句的php脚本,第二个是后来由于xmlhttp请求而填充的
<form id="addclass">
<div class="form-group">
<label for="dept">Department</label>
<select class="form-control" id="dept">
<?php
$departments = array("---",
"ACCT", "AAS", "AMST", "ANTH", "ARAB",
"ARCH", "ART", "ASIA", "ASTR", "BIOE",
"BIOS", "BUS", "BIS", "CHE", "CHM",
"CHIN", "CEE", "CLSS", "COGS", "COMM",
"CIE", "CREG", "CSE", "CSB", "CPSY",
"DES", "EES", "ECK", "ECO", "EDUC",
"EDL", "ECE", "ESE", "ENGR", "EMC",
"ENGL", "ESLP", "ENTP", "ES", "FIN",
"FREN", "GERM", "GCP", "GS", "GBEN",
"GBUS", "MBA", "HMS", "HEBR", "HIST",
"ISE", "IBE", "IDEA", "IPRE", "IR",
"ITAL", "JPNS", "JST", "JOUR", "LAT",
"LAS", "LAW", "MGT", "MSE", "MKT",
"MACC", "MAT", "MATH", "ME", "MECH",
"MIL", "MLL", "MUS", "PHIL", "PHY",
"POLS", "PMGT", "PSYC", "REL", "RUSS",
"SCHP", "STS", "SOC", "SOAN", "SPAN",
"SPED", "STAT", "SCM", "SDEV", "TLT",
"TRAC", "TE", "THTR", "WGSS");
foreach($departments as $dept) {
$str = "<option>";
$str .= $dept;
$str .= "</option>";
echo $str;
}
?>
</select>
</div>
<div class="form-group">
<label for="num">Class:</label>
<select class="form-control" id="num">
<option>---</option>
</select>
</div>
<button type="button" id="classSubmit" class="btn btn-primary" type="submit">Add Class</button>
</form>
当我按下classSubmit
按钮时,我得到两个回声:第一个是空白,第二个回答是未定义的#。
是否有其他方法可以做到这一点,或者我的问题是否在代码中的某处?谢谢!
答案 0 :(得分:1)
您没有使用正确的选择器进行选择。您需要使用#
按ID选择元素。请尝试以下方法:
$('#dept').val();
$('#num').val();
引自W3(http://www.w3.org/TR/html5/forms.html#attr-option-value):
value属性为元素提供值。 option元素的值是value content属性的值(如果有),或者,如果没有,则为元素的文本IDL属性的值。
希望这对你有用
答案 1 :(得分:0)
尝试使用select
找到id
,然后过滤所选的选项:
$(document).ready(function() {
$("#classSubmit").click(function() {
console.log($("#dept > option").filter(":selected").text());
console.log($("#num > option").filter(":selected").text());
});
});
如果选项没有value
属性,则应使用.text()
答案 2 :(得分:0)
对于第二部分,有两个错误:
$("#num")