[英]jQuery - Another way to write this statement (DRY)
我想知道是否有办法在没有if / else的情况下编写以下代码。
目前,这工作正常。 但是我想弄清楚如何利用DRY方法,我不喜欢道具被写两次的事实。
我有一个文本值,用户需要将该代码输入到文本框中。 一旦值匹配,它“启用”提交按钮,否则它将禁用它。
$( '#input-code' ).on( 'change keyup paste', function() {
if ( $( this ).val() == $( "#random-code" ).text() ) {
$( '#submit-btn' ).prop( 'disabled', false );
} else {
$( '#submit-btn' ).prop( 'disabled', true );
}
});
您可以将if..else
迁移到内部条件以设置属性,
$( '#input-code' ).on( 'change keyup paste', function() {
$( '#submit-btn' ).prop( 'disabled', this.value !== $( "#random-code" ).text() );
});
此外,如果您正在处理现代浏览器,您可以使用on('input'
而不是'change keyup paste'
。但请检查浏览器支持。
您可以直接在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()));
// ^^^
});
$('#input-code').on('change keyup paste', function() {
$('#submit-btn').prop('disabled', function(){
return ( $( this ).val() == $( "#random-code" ).text() );
});
});
有关详细信息,请查看此处... Jquery prop()详细信息.....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.