我有文本框和下拉菜单,我想同时比较两个值,并在每次发生变化且两者都不相等时触发警报。 假设如果我从下拉菜单中选择了6个数字,并且如果我没有在文本框中输入6个数字,那么它会触发警报,并且如果我在文本框中输入6个数字并在下拉菜单中选择12个数字,我也会得到警报。如何编写单个函数来检查这两个条件?
$(document).ready(function () {
$('#myDropdown').change(function () {
var sixNumeric = /^[0-9]{6}$/;
var twelveNumeric = /^.[0-9]{12}$/;
var dropdown = $("#myDropdown").val();
var textval = $("#myInput").val();
if (myDropdown == 'text' ) {
alert("enter only text");
}
if (dropdown == "six") {
if (sixNumeric.test(textval) ==false ) {
alert("Must be 6 numeric");
}
}
if (dropdown == "tweleve") {
if (twelveNumeric.test(textval) ==false ) {
alert("Must be 12 numeric");
}
}
});
<select id="myDropdown">
<option value="six">SixNumeric</option>
<option value="tweleve">TwelveNumeric</option>
</select>
<input type="text" id="myInput" value="" />
答案 0 :(得分:0)
您的dropdown
变量定义不正确。它引用stateCode
的值,而应该引用下拉值。如果您更改此行
var dropdown = $("#stateCode").val();
到
var dropdown = $("#myDropdown").val();
它应该工作。
您还应该删除或更改此部分:
if (myDropdown == 'text' ) {
alert("enter only text");
}
在您的代码中未定义myDropdown
。
答案 1 :(得分:0)
您的要求不是很清楚,但是我觉得您正在尝试做更多的事情。
如果“ sixnumeric”仅表示6位数字,则可以执行以下操作,例如从文本框中提取值,使用isNaN确定它是否为有效数字,以及是否通过该检查以针对下拉值进行验证。
抬起头,isNaN将在空格字符串或空字符串上返回true,因此您还需要检查这些情况。
isNaN:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
isNaN和空字符串:Why does isNaN(" ") equal false