2

HTML

<input type='text' id='costs' value='100' size='3'></input>

jQuery

var costs = $("#costs");
var c = parseFloat(costs.val().replace(",",".")); //germany ;)
costs.text(c);

如果我将输入字段留空,我会得到 NAN。如果输入字段为空,我需要更改什么以将输入字段替换为 0?

4

4 回答 4

6
var val = costs.val().replace(",","."),
c = isNaN(val) ? 0 : parseFloat(val);
于 2012-04-22T18:00:30.687 回答
1

捕获表单提交。查找所有输入并检查文本是否为空,如果是,则添加“0”。

$('#form').submit(function(){
  var theInputs = $(this).find('input');
  $.each(theInputs, function(i,obj){
    if($(obj).text() == ''){ //we could have checked for empty. I checked for no string.
      $(obj).text('0');
      return true; //let the form continue with the submit.
    }
  });
});
于 2012-04-22T17:59:43.757 回答
1

我不知道你的用户案例,但是,你可以做一个简单的检查NaN并将其设置为 0。

像这样:

$("#set").click(function(){
    var costs = $("#costs");
    var c = parseFloat(costs.val().replace(",",".")); //germany ;)
    alert(c);
    if(!isNaN(c)) {
        costs.val(c);
    } else {
        costs.val("0");
    }
});
​

html:

<input type='text' id='costs' value='100' size='3'></input>
<button id="set">Set</button>

在此处查看工作演示:http: //jsfiddle.net/jBeN9/

如果你想让代码看起来更简洁,你可以使用像这样的三元运算符,这是一样的。:

$("#set").click(function(){
    var costs = $("#costs");
    var c = parseFloat(costs.val().replace(",",".")); //germany ;)
    costs.val((isNaN(c) ? "0" : c));
});

​</p>

于 2012-04-22T18:00:17.377 回答
1

如果你想用 0 替换 NaN,只需这样写:

var c = parseFloat(costs.val().replace(",",".")) || 0;
于 2013-11-01T05:43:39.410 回答