如果字段为空,则不运行函数



我对这里很陌生,对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);

最新更新