jQuery:修剪不适用于检查空输入

时间:2014-05-04 00:53:24

标签: javascript jquery input trim

我使用$ .trim检查输入是否为空,如果是,则不会发生任何事情。如果他们不是空的,那么应该提交表格。

这是条件所在的变量:

var save = $("<input type='button' value='Save' />").on('click',function() {
        if(!$.trim(name)==''||!$.trim(degree)==''||!$.trim(dateFrom)==''||!$.trim(dateTo)=='') {
            $("#list").append("<li>Name: "+$('#elem1').val()+
                             "<br>Degree: "+$('#elem2').val()+
                             "<br>Date From: "+$('#elem3').val()+
                             "<br>Date To: "+$('#elem4').val()+
                             "</li>");
            cancel.click();
        } else {}
    });

请在这里查看jsFiddle上的代码: http://jsfiddle.net/vrpWu/

  • 点击&#34;添加另一个&#34;

请注意,它没有if条件,为什么会发生这种情况?我到处都是,但看起来我的代码没错。

1 个答案:

答案 0 :(得分:1)

首先,您必须在实际单击保存按钮时获取值,而不是之前,因为这些值将始终为空字符串

var save = $("<input type='submit' value='Save' />").on('click', function () {
    var name     = $("#elem1").val();
    var degree   = $("#elem2").val();
    var dateFrom = $("#elem3").val();
    var dateTo   = $("#elem4").val();

    if (!($.trim(name) == '' || $.trim(degree) == '' || $.trim(dateFrom) == '' || $.trim(dateTo) == '')) {
        console.log('test')
        $("#list").append("<li>Name1: " + $('#elem1').val() +
            "<br>Name2: " + $('#elem2').val() +
            "<br>Name3: " + $('#elem3').val() +
            "<br>Name4: " + $('#elem4').val() +
            "</li>");
        cancel.click();
    } else {
        console.log('no')
    }
});

然后你应该注意,当你否定变量并使用OR

时,事情会有所不同

你可以立刻否定整件事

if (! ($.trim(name)==''||$.trim(degree)==''||$.trim(dateFrom)==''||$.trim(dateTo)=='')) {

或使用AND代替

if (!$.trim(name)=='' && !$.trim(degree)=='' && !$.trim(dateFrom)=='' ... etc

FIDDLE