我对这里很陌生,对Javascript和编程概念也很陌生。我正在处理的simlpy表格的一部分需要计算两个价格之间的差额。我知道浮点数很奇怪,所以我已经想好了。它进行计算,并将其输入到字段3中。我唯一想不通的是,如果字段1或2为空,函数就不会运行。它只应在两个字段都已填充时运行。这是我的示例代码:
<input type="text" id="1"> </input><br/>
<input type="text" id="2"> </input><br/>
<input type="text" id="3"> </input><br/>
<br/><br/><br/>
<p id="test"></p>
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script>
function emptyCheck(){
if ($("#1") = ""){
$("#3").val("");
}
else if ($("#2") = ""){
$("#3").val("");
}
else{
rateDiff();
}
}
function rateDiff(){
var clientRate = $("#1").val() * 100;
var agentRate = $("#2").val() * 100;
var fareDiff = clientRate - agentRate;
var fareDiffDec = fareDiff / 100;
$("#3").val(fareDiffDec.toFixed(2));
}
$("#1").keyup(emptyCheck);
$("#2").keyup(emptyCheck);
</script>
我不明白我在这里做错了什么。有人能给我指正确的方向吗?
if ($("#1") = ""){
应该是
if ($("#1").val() == ""){
与$("#2") = ""
相同
$("#1")
是一个jquery元素,而不是值。此外,您还放置了=
而不是==
$("#1") = "")
应该是
$("#1").val() == "")
一个=用于赋值,而两个=用于进行比较。
只需使用JavaScript的"false"和值:
function emptyCheck(){
if (!$("#1").val() || !$("#2").val()){
$("#3").val("");
}
else{
rateDiff();
}
}
注意:您最好解析数字以处理alpha条目:
function emptyCheck() {
if (!parseFloat($("#1").val()) || !parseFloat($("#2").val())) {
$("#3").val("");
} else {
rateDiff();
}
}
function rateDiff() {
var clientRate = parseFloat($("#1").val()) * 100;
var agentRate = parseFloat($("#2").val()) * 100;
var fareDiff = clientRate - agentRate;
var fareDiffDec = fareDiff / 100;
$("#3").val(fareDiffDec.toFixed(2));
}
$("#1").keyup(emptyCheck);
$("#2").keyup(emptyCheck);