1

ユーザーが事前定義されたデータを選択し、という名前の入力フィールドに新しいデータを追加することになっているフォームがあります。その後、ユーザーはxxxさらに先に進むことができます。

事前定義されたデータを選択すると、新しい非表示の入力が作成されます

$('.selectlists').append('<input type="hidden" name="select" value="1" />')

xxx非表示フィールドが存在するかどうか、入力に値があるかどうかをチェックする関数があります

function checkAll(){
        if( $("input[name*='select']") ){
            alert('ok');
        }
        else{
            if ( $("input[name*='xxx']").val() != '') {
                alert('ok');
            }
        }
    }

関数は正常に動作しています。しかし、非表示の入力を作成し、jQueryの関数を使用してそれを削除するとremove()、私の関数checkAll()は非表示の入力がまだ存在していることを示しています。

4

6 に答える 6

3
if($("input[name*='select']")) ...

長さを確認する必要があります...

if( $("input[name*='select']").length > 0) 

JQueryは、一致する要素の配列を返します。

于 2012-08-13T09:02:43.200 に答える
1

次のような入力を作成します

$('.selectlists').append('<input type="hidden" name="select" value="1" />')

右 ?

$('.selectlists input[name="select"]').remove();

checkAllメソッドで試してください:

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

また

if( $(".selectlists input[name='select']").length ){
            alert('ok');
        }
于 2012-08-13T09:03:05.180 に答える
0

関数はオブジェクトの配列を返し、JavaScriptではすべての配列が空であってもtrueと評価されるため、このプロパティを使用してlength要素が存在するかどうかをテストします。$()

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

このように、存在しない場合input[name*='select']、長さはゼロになり、式はfalseと評価されます。

于 2012-08-13T09:05:40.237 に答える
0

入力フィールドが存在しない場合、チェックボックスに「ok」のアラートボックスが表示されます。

$("input[name*='xxx']").val()

'undefined'を返し、空の文字列と一致しません。

jQueryオブジェクトがヒットを返すかどうかを確認するか、「undefined」を確認することで、要素の存在を確認できます。

これらのいずれかが機能するはずです:

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

また

$('input[name=xxx]').length === 0

オプション2をお勧めします。これは、jQueryの変更に対してより堅牢であるように思われるためです。

于 2012-08-13T09:05:46.723 に答える
0
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そうでtrueなければ与えるでしょう。len=0false

于 2012-08-13T09:06:07.803 に答える
0

あなたはこれを試すことができます

 if( jQuery("*[name='select']") ){
            alert('ok');
        }
于 2012-08-13T09:13:16.327 に答える