0

我正在使用以下 HTML

Level 1: <input type="text" name="benefit_std_level1" maxlength="5" value="0.0" onblur="noSpaceTest();float_5_2_percent(this);" style="width:40px;" class="input nospace">%<br />
Level 2: <input type="text" name="benefit_std_level2" maxlength="5" value="0.0" onblur="noSpaceTest();float_5_2_percent(this);" style="width:40px;" class="input40 nospace">%<br />
Level 3: <input type="text" name="benefit_std_level3" maxlength="5" value="0.0" onblur="noSpaceTest();float_5_2_percent(this);" style="width:40px;" class="input nospace">%<br />   

如果用户在三个“级别”字段中的任何一个中输入空格,则数据库中会发生错误。因此,我使用以下脚本来检查空格,然后将值更改回默认的“0.0”。

jQuery:

function noSpaceTest(){
    $('.nospace').each(function(){
        if ($('.nospace').val() == ' '){
            $('.nospace').val('0.0');
        }
    });
}

最初,在我正在开发的站点中,这确实有效,但仅适用于第一个字段(onBlur 会检查并找到空间并将其替换为 0.0)但是,现在我无法让它在 JSFiddle 中工作(参见链接以下)

http://jsfiddle.net/pMkYg/

恐怕我遗漏了一些明显的东西,但我并没有更接近解决方案。有没有人可以提供任何见解?

4

6 回答 6

4

删除内联 js 并改用change事件处理程序:

$('.nospace').on('change', function () {
    if(/^\s+$/.test(this.value)) this.value = '0.0';
});

小提琴

于 2013-06-17T13:00:06.460 回答
2

你离工作代码不是很远,这里有一个修复:

function noSpaceTest(){
    $('.nospace').each(function(){
        if ($(this).val() == ' '){
            $(this).val('0.0');
        }
    });
}
于 2013-06-17T12:59:58.707 回答
2

You need to use this , Also That will fail for multiple spaces like ' ' -

You can do this -

function noSpaceTest(){
    $('.nospace').each(function(){
        if ($.trim(this.value) === ''){
            $(this).val('0.0');
        }
    });
}
于 2013-06-17T13:00:51.580 回答
2

使用$(this)

function noSpaceTest(){
    $('.nospace').each(function(){
        var $this = $(this);
        if ($this.val() == ' '){
            $this.val('0.0');
        }
    });
}
于 2013-06-17T12:58:51.597 回答
1

try this for float value

    function noSpaceTest() {
        $('.nospace').each(function () {
            var this_input = $(this);
            if (parseFloat(this_input.val()) == undefined || parseFloat(this_input.val()) == NaN || $.trim(this.value) === '') {
                this_input.val('0.0');
            }
        });
    }
于 2013-06-17T13:01:46.357 回答
1

$(".nospace").blur(function() {

    if ($(this).val().trim() == ''){
        $(this).val('0.0');

    }
});
于 2013-06-17T13:21:19.563 回答