我是新来的,对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>
我不知道我在这里做错了什么。有人能指出我正确的方向吗?
答案 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);