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

时间:2015-03-22 19:06:16

标签: javascript jquery html

我是新来的,对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>

我不知道我在这里做错了什么。有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:3)

if ($("#1") = ""){

应该是

 if ($("#1").val() == ""){

$("#2") = ""

相同

$("#1")是一个jquery元素,而不是值。 您也可以=代替==

答案 1 :(得分:0)

$("#1") = "")

应该是

$("#1").val() == "")

一个=用于分配值,而两个==用于进行比较。

答案 2 :(得分:0)

只需使用JavaScript的“假”和值:

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);