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