Javascript jQuery在remove()之后检查是否存在输入

Javascript jQuery在remove()之后检查是否存在输入,javascript,jquery,input,Javascript,Jquery,Input,我有一个表单,其中用户应该选择预定义的数据,在名为xxx的输入字段中添加新数据,然后他/她可以继续 选择预定义数据后,将创建新的隐藏输入 $('.selectlists')。追加('') 我有一个函数,它检查隐藏字段是否存在,以及输入xxx是否有任何值 function checkAll(){ if( $("input[name*='select']") ){ alert('ok'); } else{

我有一个表单,其中用户应该选择预定义的数据,在名为
xxx
的输入字段中添加新数据,然后他/她可以继续

选择预定义数据后,将创建新的隐藏输入

$('.selectlists')。追加('')

我有一个函数,它检查隐藏字段是否存在,以及输入
xxx
是否有任何值

function checkAll(){
        if( $("input[name*='select']") ){
            alert('ok');
        }
        else{
            if ( $("input[name*='xxx']").val() != '') {
                alert('ok');
            }
        }
    }
该功能运行良好。但是如果我创建隐藏输入,然后使用jQuery的函数
remove()
将其删除,那么我的函数
checkAll()
显示隐藏输入仍然存在

if($("input[name*='select']")) ...
应该检查长度

if( $("input[name*='select']").length > 0) 
JQuery返回匹配元素的数组

应该检查长度

if( $("input[name*='select']").length > 0) 
JQuery返回一个匹配元素的数组。

您可以像

$('.selectlists')。追加('')

对吧?

$('.selectlists input[name="select"]').remove();
尝试
checkAll
方法:

if( $(".selectlists input[name='select']") ){
            alert('ok');
        }

您可以像这样创建输入

$('.selectlists')。追加('')

对吧?

$('.selectlists input[name="select"]').remove();
尝试
checkAll
方法:

if( $(".selectlists input[name='select']") ){
            alert('ok');
        }


使用
length
属性测试是否存在某个元素,因为函数
$()
返回一个对象数组,在javascript中,所有数组的计算结果都为true,即使它们为空也是如此

if( $("input[name*='select']").length ){
     alert('ok');
}

这样,如果没有
输入[name*='select']
,长度将为零,表达式的计算结果将为false。

使用
length
属性测试是否存在某个元素,因为函数
$()
返回一个对象数组,在javascript中,所有数组的计算结果都为true,即使它们为空,事实就是这样

if( $("input[name*='select']").length ){
     alert('ok');
}

这样,如果没有
输入[name*='select']
长度将为零,表达式将计算为false。

当输入字段不存在时,由于

$("input[name*='xxx']").val()
将返回“未定义”且与空字符串不匹配

您可以通过检查jQuery对象是否返回任何命中或检查“undefined”来检查元素是否存在

这两种方法中的任何一种都应该有效:

typeof $('input[name=xxx]').val() === 'undefined'


我更喜欢选择2。因为它似乎对jQuery中的更改更加健壮。

当输入字段不存在时,您的检查将显示一个带有“ok”的警告框,因为

$("input[name*='xxx']").val()
function isexists(){
   var hiddenLen = $(".selectlists input[name*='select']:hidden").length,
       hasval = $.trim( $("input[name*='xxx']").val() ).length;
   return {
      hiddedexists: !len,
      hasval : !hasval
    };
}
将返回“未定义”且与空字符串不匹配

您可以通过检查jQuery对象是否返回任何命中或检查“undefined”来检查元素是否存在

这两种方法中的任何一种都应该有效:

typeof $('input[name=xxx]').val() === 'undefined'

我更喜欢选择2。因为它似乎对jQuery中的更改更加健壮

function isexists(){
   var hiddenLen = $(".selectlists input[name*='select']:hidden").length,
       hasval = $.trim( $("input[name*='xxx']").val() ).length;
   return {
      hiddedexists: !len,
      hasval : !hasval
    };
}
您可以像这样使用此功能:

var exists = isexists();

exists.hiddenexists; // true of false
exists.hasval;  // true of false
笔记
!如果
len=0
else
false
,len
将给出
true

您可以像这样使用此功能:

var exists = isexists();

exists.hiddenexists; // true of false
exists.hasval;  // true of false
笔记
!len
将给出
true
如果
len=0
否则
false

您可以试试这个

 if( jQuery("*[name='select']") ){
            alert('ok');
        }
你可以试试这个

 if( jQuery("*[name='select']") ){
            alert('ok');
        }

如果($($input[name='select'].length)OK,那肯定是我问题的解决方案。我仍然想知道为什么这个函数显示输入的存在。$(“…”)从不返回null或未定义,如果没有任何值,它将返回空数组。因此,如果不检查长度,您的条件将始终为真。(“input[name*='select'])或(“input[name='select'])都返回一个数组。因此,即使没有元素,这也将返回一个空数组。因此,我们必须检查数组的长度。希望你能理解。我的英语不是很好。但有趣的是,这个函数一直工作到
select
input被创建为止。关于if($(($input[name='select'].length))好的,这绝对是我问题的解决方案。我仍然想知道为什么这个函数显示输入的存在。$(“…”)从不返回null或未定义,如果没有任何值,它将返回空数组。因此,如果不检查长度,您的条件将始终为真。(“input[name*='select'])或(“input[name='select'])都返回一个数组。因此,即使没有元素,这也将返回一个空数组。因此,我们必须检查数组的长度。希望你能理解。我的英语不是很好。但有趣的是,该函数一直工作到创建
select
输入