2017-09-04 15 views
0

如果用戶將其更改爲小於1的任何值,我想將其改爲1。每次值改變時它都應該工作。到目前爲止,我可以無條件地將該值更改爲1:檢查輸入值是否小於x如果在jQuery中將其更改爲x

jQuery(document).ready(function() { 
    jQuery('input[type=text]').val('1'); 
}); 

接下來應該做什麼?

回答

0

您將使用change事件和if陳述。

下面的代碼可以讀作「當myInput的值發生變化,如果myInput的值小於1,myInput的值設置爲1」

jQuery('input[type=text]').on('change', function() { 
    var myInput = jQuery(this); 

    if (myInput.val() < 1) { 
     myInput.val('1'); 
    } 
}); 

實施例:

jQuery('input[type=text]').on('change', function() { 
 
    var myInput = jQuery(this); 
 

 
    if (myInput.val() < 1) { 
 
     myInput.val('1'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="text">

+0

謝謝,我不知道怎麼可以這樣:var myInpu t = jQuery(this); 被讀取,它有什麼作用? – benua

+0

這只是將輸入緩存到變量中,以便jQuery不必找到它兩次。每次運行'jQuery('input [type = text]')'時,jQuery都必須搜索整個文檔以查找元素。如果將結果存儲在變量中,則查找只需發生一次。 – Turnip

1

收聽您輸入的change事件。

jQuery('input[type=text]').on('change', function() { 
    if (jQuery(this).val() < 1) { 
     jQuery(this).val('1'); 
    } 
} 

但也許你想用<input type="number" min="1">代替?

0

您需要添加的事件偵聽器changekeyup

$(function() { 
 
    $('#myval').on('change', function() { 
 
    // allow minimum of 1 
 
    $(this).val(Math.max($(this).val(), 1)) 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="myval" value="1" />

儘管在特定情況下,你可能只是有一個number類型的輸入和min屬性添加到它來達到相同的結果:

<input type="number" id="myval" value="1" min="1" />

相關問題