Javascript验证不起作用
预算范围的验证在以下代码中不起作用。它在不同的时间点带来不同的结果Javascript验证不起作用,javascript,jquery,validation,Javascript,Jquery,Validation,预算范围的验证在以下代码中不起作用。它在不同的时间点带来不同的结果 <table> <tr> <td> Budget Range </td> <td> <select id="start"> <option value="">---Select---</option>
<table>
<tr>
<td>
Budget Range
</td>
<td>
<select id="start">
<option value="">---Select---</option>
<option value="0">0</option>
<option value="1000000">10 Lakhs</option>
<option value="2500000">25 Lakhs</option>
<option value="5000000">50 Lakhs</option>
<option value="7500000">75 Lakhs</option>
<option value="10000000">1 Crore</option>
<option value="12500000">1 Crore 25 Lakhs</option>
<option value="15000000">1 Crore 50 Lakhs</option>
<option value="17500000">1 Crore 75 Lakhs</option>
<option value="20000000">2 Crore</option>
<option value="25000000">2 Crore 50 Lakhs</option>
<option value="30000000">3 Crore</option>
<option value="35000000">3 Crore 50 Lakhs</option>
<option value="40000000">4 Crore</option>
<option value="45000000">4 Crore 50 Lakhs</option>
</select>
to
<select id="end" onchange="selectRange()">
<option value="0">---Select---</option>
<option value="1000000">10 Lakhs</option>
<option value="2500000">25 Lakhs</option>
<option value="5000000">50 Lakhs</option>
<option value="7500000">75 Lakhs</option>
<option value="10000000">1 Crore</option>
<option value="12500000">1 Crore 25 Lakhs</option>
<option value="15000000">1 Crore 50 Lakhs</option>
<option value="17500000">1 Crore 75 Lakhs</option>
<option value="20000000">2 Crore</option>
<option value="25000000">2 Crore 50 Lakhs</option>
<option value="30000000">3 Crore</option>
<option value="35000000">3 Crore 50 Lakhs</option>
<option value="40000000">4 Crore</option>
<option value="45000000">4 Crore 50 Lakhs</option>
</select>
</td>
</tr>
</table>
<script>
function selectRange() {
$startRange = document.getElementById('start').value;
$endRange = document.getElementById('end').value;
alert($startRange);
alert($endRange);
alert($startRange > $endRange);
if ($startRange > $endRange) {
alert('The Budget End Should be Greater than Budget Start');
$endRange = document.getElementById('end').value = 0;
return false
}
}
</script>
预算范围
---挑选---
0
100万
2500万
5000万
7500万
1百万
150万卢布
150万欧元
1亿欧元7500万
2百万
200亿欧元5000万
三百亿
300亿欧元5000万
4百万
400亿欧元5000万
到
---挑选---
100万
2500万
5000万
7500万
1百万
150万卢布
150万欧元
1亿欧元7500万
2百万
200亿欧元5000万
三百亿
300亿欧元5000万
4百万
400亿欧元5000万
函数selectRange(){
$startRange=document.getElementById('start').value;
$endRange=document.getElementById('end')。值;
警报($startRange);
警报($endRange);
警报($startRange>$endRange);
如果($startRange>$endRange){
警报(“预算结束应大于预算开始”);
$endRange=document.getElementById('end')。值=0;
返回错误
}
}
在上述代码中,预算范围的验证不起作用。它会在不同的时间点产生不同的结果。当您获得值时,这些值会以字符串形式出现,或者您的比较基于字符串值,因此它会产生错误的结果。将它们按数字排列会有所帮助。
<table>
<tr>
<td>
Budget Range
</td>
<td>
<select id="start">
<option value="">---Select---</option>
<option value="0">0</option>
<option value="1000000">10 Lakhs</option>
<option value="2500000">25 Lakhs</option>
<option value="5000000">50 Lakhs</option>
<option value="7500000">75 Lakhs</option>
<option value="10000000">1 Crore</option>
<option value="12500000">1 Crore 25 Lakhs</option>
<option value="15000000">1 Crore 50 Lakhs</option>
<option value="17500000">1 Crore 75 Lakhs</option>
<option value="20000000">2 Crore</option>
<option value="25000000">2 Crore 50 Lakhs</option>
<option value="30000000">3 Crore</option>
<option value="35000000">3 Crore 50 Lakhs</option>
<option value="40000000">4 Crore</option>
<option value="45000000">4 Crore 50 Lakhs</option>
</select>
to
<select id="end" onchange="selectRange()">
<option value="0">---Select---</option>
<option value="1000000">10 Lakhs</option>
<option value="2500000">25 Lakhs</option>
<option value="5000000">50 Lakhs</option>
<option value="7500000">75 Lakhs</option>
<option value="10000000">1 Crore</option>
<option value="12500000">1 Crore 25 Lakhs</option>
<option value="15000000">1 Crore 50 Lakhs</option>
<option value="17500000">1 Crore 75 Lakhs</option>
<option value="20000000">2 Crore</option>
<option value="25000000">2 Crore 50 Lakhs</option>
<option value="30000000">3 Crore</option>
<option value="35000000">3 Crore 50 Lakhs</option>
<option value="40000000">4 Crore</option>
<option value="45000000">4 Crore 50 Lakhs</option>
</select>
</td>
</tr>
</table>
<script>
function selectRange() {
$startRange = document.getElementById('start').value;
$endRange = document.getElementById('end').value;
alert($startRange);
alert($endRange);
alert($startRange > $endRange);
if ($startRange > $endRange) {
alert('The Budget End Should be Greater than Budget Start');
$endRange = document.getElementById('end').value = 0;
return false
}
}
</script>
只需替换这些代码行
$startRange = document.getElementById('start').value;
$endRange = document.getElementById('end').value;
到
或
并使用parseInt函数检查此JSFIDLE
或者使用数字函数检查此项,select元素的
值属性在获取时返回字符串。当您比较它们时,它们将按字母顺序进行比较,即“5000000”>“45000000”
。在使用或之前将它们转换为数字
顺便说一句,JavaScript变量不需要以$
开头,到底发生了什么?如何调用selectRange?很简单,当预算开始范围大于预算结束范围时,它应该发送一条警报消息,但这不起作用。请详细说明“不同的时间点”。有繁殖的方法吗?公牛眼它的工作非常感谢
$startRange = Number(document.getElementById('start').value);
$endRange = Number(document.getElementById('end').value);
if (+$startRange > +$endRange)