1
4

3 に答える 3

3

セレクターは入力のデフォルト状態をチェックするため、フィールドのフィルタリングを使用してください。[value=""]

$('#form').on('submit', function() {
    $(':input', this).filter(function() {
        return this.value.length == 0;
    }).remove();
});​

デモ: http://jsfiddle.net/bCskH/

更新:入力フィールドを削除しないようにするには、単純に無効にします。

$('#form').on('submit', function() {
    $(':input', this).filter(function() {
        return this.value.length == 0;
    }).prop('disabled', true);
});​

効果は同じですが、私見の方がはるかに優れています:)

デモ: http://jsfiddle.net/bCskH/1/

于 2012-05-05T13:41:28.407 に答える
2

jqueryセレクターを使用serialize()して、値を持つ入力のみを選択することができます ここに例があります

<form id="test">
    <input name="field1" value="Test"><br/>
    <input name="field2" value=""><br/>
    <input name="field3" value="value"><br/>
    <input id="btn" type="button" value="submit"/>
</form>​


$('#btn').on('click',function() {
    alert($('#test input[value != ""]').serialize());
});​

また、代わり.live()にjquery 1.7を使用しても機能するのではないかと思い.on()ます。このリンクを参照すると、廃止されたと書かれています

于 2012-05-05T13:47:47.877 に答える
1

[value=".."]現在の値と同期されていない属性にアクセスします。それに加えて、セレクターをコンテキストとして指定することはできません。そのため#form、メインのセレクターに移動して.filter()、一致する要素を空の要素に制限するために使用します。

$('#form input').filter(function() {
    return !$(this).val();
});
于 2012-05-05T13:38:42.160 に答える