Answers:
function getComboA(selectObject) {
var value = selectObject.value;
console.log(value);
}
<select id="comboA" onchange="getComboA(this)">
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>
上面的示例为您提供OnChange事件上组合框的选定值。
getComboA()
是var value = sel.value;
在某些情况下,另一种可能很方便的方法是将selected的值<option />
直接传递给函数,如下所示:
function myFunction(chosen) {
console.log(chosen);
}
<select onChange="myFunction(this.options[this.selectedIndex].value)">
<option value="1">Text 1</option>
<option value="2">Text 2</option>
</select>
有关如何在jQuery中进行操作:
<select id="yourid">
<option value="Value 1">Text 1</option>
<option value="Value 2">Text 2</option>
</select>
<script src="jquery.js"></script>
<script>
$('#yourid').change(function() {
alert('The option with value ' + $(this).val() + ' and text ' + $(this).text() + ' was selected.');
});
</script>
您还应该知道Javascript和jQuery不相同。jQuery是有效的JavaScript代码,但并非所有JavaScript都是jQuery。您应该查找差异,并确保使用了适当的差异。
htmlData.push($('<select id="choose" name="choose">'));
应该做到这一点(您之前推送了一个字符串而不是一个成熟的节点)。> 6年过去了……
<select id="comboA">
<option value="">Select combo</option>
<option value="Value1">Text1</option>
<option value="Value2">Text2</option>
<option value="Value3">Text3</option>
</select>
<script>
document.getElementById("comboA").onchange = function(){
var value = document.getElementById("comboA").value;
};
</script>
要么
<script>
document.getElementById("comboA").onchange = function(evt){
var value = evt.target.value;
};
</script>
要么
<script>
document.getElementById("comboA").onchange = handleChange;
function handleChange(evt){
var value = evt.target.value;
};
</script>
我发现@Piyush的答案很有帮助,并且只是添加到其中,如果您以编程方式创建选择,那么有一种重要的方法可以使这种行为不明显。假设您有一个函数并创建了一个新的选择:
var changeitem = function (sel) {
console.log(sel.selectedIndex);
}
var newSelect = document.createElement('select');
newSelect.id = 'newselect';
正常行为可能是说
newSelect.onchange = changeitem;
但这实际上不允许您指定传入的参数,因此您可以这样做:
newSelect.setAttribute('onchange', 'changeitem(this)');
并且您可以设置参数。如果您采用第一种方法,则函数的参数将onchange
取决于浏览器。第二种方法似乎可以跨浏览器正常工作。
eval
不需要像邪恶的字符串到代码的转换。newSelect.onchange = changeitem;
如果将changeitem重写为var changeitem = function () {console.log(this.selectedIndex); };
(即使用this
而不是函数参数),则实际上可以正常工作。或者,保持changeitem
原样并写newSelect.onchange = function () {changeitem(this); };
。
选择元素通常具有两个要访问的值。
首先是要发送到服务器的值,这很容易:
$( "#myselect" ).val();
// => 1
第二个是选择的文本值。
例如,使用以下选择框:
<select id="myselect">
<option value="1">Mr</option>
<option value="2">Mrs</option>
<option value="3">Ms</option>
<option value="4">Dr</option>
<option value="5">Prof</option>
</select>
如果要在选择第一个选项(而不只是“ 1”)的情况下获取字符串“ Mr”,则可以通过以下方式进行操作:
$( "#myselect option:selected" ).text();
// => "Mr"
我编写此代码后,只需解释select的onChange事件,您就可以将该代码另存为html并查看其输出。对您来说很容易理解。
<html>
<head>
<title>Register</title>
</head>
<body>
<script>
function show(){
var option = document.getElementById("category").value;
if(option == "Student")
{
document.getElementById("enroll1").style.display="block";
}
if(option == "Parents")
{
document.getElementById("enroll1").style.display="none";
}
if(option == "Guardians")
{
document.getElementById("enroll1").style.display="none";
}
}
</script>
<form action="#" method="post">
<table>
<tr>
<td><label>Name </label></td>
<td><input type="text" id="name" size=20 maxlength=20 value=""></td>
</tr>
<tr style="display:block;" id="enroll1">
<td><label>Enrollment No. </label></td>
<td><input type="number" id="enroll" style="display:block;" size=20 maxlength=12 value=""></td>
</tr>
<tr>
<td><label>Email </label></td>
<td><input type="email" id="emailadd" size=20 maxlength=25 value=""></td>
</tr>
<tr>
<td><label>Mobile No. </label></td>
<td><input type="number" id="mobile" size=20 maxlength=10 value=""></td>
</tr>
<tr>
<td><label>Address</label></td>
<td><textarea rows="2" cols="20"></textarea></td>
</tr>
<tr >
<td><label>Category</label></td>
<td><select id="category" onchange="show()"> <!--onchange show methos is call-->
<option value="Student">Student</option>
<option value="Parents">Parents</option>
<option value="Guardians">Guardians</option>
</select>
</td>
</tr>
</table><br/>
<input type="submit" value="Sign Up">
</form>
</body>
</html>
万一有人在寻找React解决方案而不必下载您可以编写的其他依赖项,以防万一:
<select onChange={this.changed(this)}>
<option value="Apple">Apple</option>
<option value="Android">Android</option>
</select>
changed(){
return e => {
console.log(e.target.value)
}
}
确保像下面这样在构造函数中绑定changed()函数:
this.changed = this.changed.bind(this);
这对我有效onchange = setLocation($(this).val())
这里。
@Html.DropDownList("Demo",
new SelectList(ViewBag.locs, "Value", "Text"),
new { Class = "ddlStyle", onchange = "setLocation($(this).val())" });