我正在使用$ .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/


点击“添加其他”


请注意,它没有if条件就可以工作,为什么会这样呢?我到处都读过,但是看起来我的代码没有错。

最佳答案

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

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

10-07 13:34
查看更多