在我的下拉列表中,我进行了设置,以便onchange应该调用checkval并传入元素的id。我刚刚开始使用真正基本的登录,但是甚至无法显示警报。我做错了什么?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
function checkval(id){
if($('#' + id).val == "Other")
{
alert("You Selected Other");
//other logic will go here
}
}
</script>
</head>
<body>
<select name="items1[]" id="items1[]" onchange="checkval(id);">
<option selected value="">Select One</option>
<option value="one">One</option>
<option value="Other">Other</option>
</select>
<select name="items2[]" id="items2[]" onchange="checkval(id);">
<option selected value="">Select One</option>
<option value="one">One</option>
<option value="Other">Other</option>
</select>
</body>
</html>
答案 0 :(得分:2)
编辑:似乎对于id items1 []失败了。所以改变了你的标记位..修复jsFiddle这里。
请参阅What characters are allowed in DOM IDs?
的链接将您的标记更改为onchange="checkval(this.id);"
。
和脚本
function checkval(id){
if($('#' + id).val() == "Other")
{
alert("You Selected Other");
//other logic will go here
}
}
答案 1 :(得分:2)
试试这个:
<select name="items1[]" id="items1[]" onchange="checkval(this.id);">
甚至更好,不引人注意地连接你的处理程序,
$(document).ready(function(){
$(".items").change(function(){
checkval(this.id);
});
});
并删除onchange属性并添加一个类:
<select name="items1" id="items1" class="items">
<option selected value="">Select One</option>
<option value="one">One</option>
<option value="Other">Other</option>
</select>
<select name="items2" id="items2" class="items">
<option selected value="">Select One</option>
<option value="one">One</option>
<option value="Other">Other</option>
</select>
答案 2 :(得分:1)
val
是一个函数,因此将其用作可以正常工作的函数val()
。
您可以将选定的值本身传递给chectVal
方法。
更改标记。
<select name="items1[]" id="items1[]" onchange="checkval(this.value);">
<select name="items2[]" id="items2[]" onchange="checkval(this.value);">
JS
function checkval(value){
if(value == "Other")
{
alert("You Selected Other");
//other logic will go here
}
}
答案 3 :(得分:0)
您应该使用括号调用val:
function checkval(id){
if($('#' + id).val() == "Other")
{
alert("You Selected Other");
//other logic will go here
}
}
正如SKS指定的那样,onchange事件中也有错误,应该是this.id.但是,您可以将代码更改为更容易。
平变化:
<select name="items1[]" id="items1[]" onchange="checkval(this);">
你的功能:
function checkval(el){
if($(el).val() == "Other")
{
alert("You Selected Other");
//other logic will go here
}
}
另外,你在控制台中有任何错误吗?
答案 4 :(得分:0)
$('#' + id).val
是一个功能
该函数永远不会等于"Other"
。
您可能希望使用括号调用函数。