2014-09-03 131 views
0

我想弹出一个MSG和禁用提交按钮,如果ID =“国家”不等于选项值=“美国”我想我很接近,但似乎无法弄清楚:Popup MSG和禁用提交按钮

CODE:

<html> 
<body> 

<script> 

$(document).on('change','#Country',function() { 

    if ((value1 != "US")) { 
     alert(my error message); 
     SubmitButton = "disabled"; 
    } 

}); 
</script> 


<select id="Country"> 
    <option value="US">United States</option> 
    <option value="CAN">Canada</option> 
    <option value="JAP">Jspan</option> 
</select> 

<br /><br /> 

<input id="SubmitButton" type="button" value="Submit"> 

</body> 
</html> 

回答

2

你有几个错误,这里是固定的代码:

JSFiddle

$(document).ready(function() { 
    $("#Country").on('change', function() { 
     if ($(this).val() != "US") { 
      alert("my error message"); 
      $("#SubmitButton").prop("disabled",true); 
     } 
    }); 
}); 
  • “我的错误信息”周围没有引号一个错误
  • 另一个错误是您在此脚本运行之前没有加载DOM。我在$(document).ready(function() { ... });中包装了您的代码,这样做意味着您不需要使用文档中的委派。
  • 另一个原因是,你从来没有设置“值1”,我改成了只需要直接获得价值 - $(this).val()
  • 另一个问题是,你需要真正得到的提交按钮来禁用它。与$("#SubmitButton")得到它,与.prop("disabled",true)

禁用另外,如果你想重新启用,如果用户选择美国提交按钮,你可以这样做:

JSFiddle

 ... 
     $("#SubmitButton").prop("disabled",true); 
    } else { 
     $("#SubmitButton").prop("disabled",false); 
    } 
... 
+0

是有差异的B/W ATTR和支撑请到通过 – Sunand 2014-09-03 20:06:09

+0

@Sunand,真的不够,'.prop()'应该用于disabled' – smerny 2014-09-03 20:10:52

+0

'坏我不能回复单独的笑脸:) – Sunand 2014-09-03 20:13:36

0

使用jQuery的attr()

$("#SubmitButton").attr("disabled", true); 
+0

'.prop(..,..)'应该用于'disabled'而不是'.attr(..,..)'。 – kelunik 2014-09-04 08:50:38

+0

请问,为什么? – lukadante3 2014-09-04 22:01:08

+1

当然,这里有很好的解释:http://api.jquery.com/prop/ – kelunik 2014-09-05 08:05:28

0

我beleive它不是

SubmitButton = "disabled"; 

应该

$("#SubmitButton").prop("disabled",true);