2

if / elseなしで次のコードを書く方法があるかどうか疑問に思っています。

現在、これは正常に動作します。しかし、私は DRY メソッドをどのように活用できるかを理解しようとしていますが、プロップが 2 回書かれているという事実は好きではありません。

テキスト値があり、ユーザーはそのコードをテキスト ボックスに入力する必要があります。値が一致すると、送信ボタンが「有効」になり、そうでない場合は無効になります。

$( '#input-code' ).on( 'change keyup paste', function() {
  if ( $( this ).val() == $( "#random-code" ).text() ) {
    $( '#submit-btn' ).prop( 'disabled', false );
  } else {
    $( '#submit-btn' ).prop( 'disabled', true );
  }
});
4

3 に答える 3

4

if..elseを内部条件に移行して、属性を設定できます。

$( '#input-code' ).on( 'change keyup paste', function() {
    $( '#submit-btn' ).prop( 'disabled', this.value !== $( "#random-code" ).text() );
});

さらに、最新のブラウザーを扱っている場合は、on('input'代わりに'change keyup paste'. ただし、ブラウザのサポートを確認してください。

于 2015-07-01T05:17:22.200 に答える
3

で否定式を直接使用できますprop

これはdisable、ボタンのテキストとtext内部#random-codeが同じになるボタンになります。

, を使用して前後のスペースを削除してください。そうしないと、ボタンのテキストと一致しませtrimん。text()

$('#input-code').on('change keyup paste', function() {
    $('#submit-btn').prop('disabled', !($(this).val() == $.trim($("#random-code").text())));
});

また

$('#input-code').on('change keyup paste', function() {
    $('#submit-btn').prop('disabled', $(this).val() !== $.trim($("#random-code").text()));
    //                                              ^^^
});
于 2015-07-01T05:16:57.027 に答える
0
$('#input-code').on('change keyup paste', function() {
    $('#submit-btn').prop('disabled', function(){
            return ( $( this ).val() == $( "#random-code" ).text() );
    });
});

詳細については、ここで確認できます... Jquery prop() 詳細.....

于 2015-07-01T05:23:11.690 に答える