所以,首先的代碼:jQuery的重寫功能
$("input").on("keyup", function() {
var filled = $("input").filter(function() {
return this.value.length > 0;
});
第一部分
if (filled.length < 1) {
var test= $('#test').val();
if (test == ""){
$('#test').css('border-color',green);
}
} else { ... }
第2部分
if (filled.length > 0 && filled.length <= 4) {
$('#test').keyup(function() {
var test = $('#test').val();
if (test=="") {
$('#test').css('border-color',red);
}
}
});
這是從其中存在4個的文本輸入是可選形式但如果用戶在其中一個領域,他必須把他們全部。
所以當filled.length> 0和< = 4時,這些字段是必需的,我希望輸入邊框爲紅色。
但是當填充。長度< 1(= 0),那麼我希望所有的邊框都是綠色的。
問題是,如果我在輸入上寫了一些東西,然後全部刪除它們,它們應該呈綠色,但Part2會覆蓋Part1並顯示爲紅色。
我的問題是:
- 我該如何解決這個問題?
- 這個問題從哪裏來?(jQuery的理論)
越接近我能得到一個「正確」的代碼替換部分1:
if(filled.length < 1)
{
$('#test').keyup(function()
{
var test = $('#test').val();
if(test=="")
{
$('#test').css('border-color',green);
}
}
}
但是當輸入是空的,我要刪除一個更多的時間(關鍵請參閱第1部分中的第2部分。
PS:如果需要更多代碼或解釋有關該問題,請詢問=)。
編輯
小提琴:http://jsfiddle.net/WzE9k/13/。代碼不完全一樣,但重點是相同的。當這個字段爲空時,它應該顯示「沒有任何東西是寫入的」,但它沒有。
我建議建立一個[的jsfiddle(HTTP://的jsfiddle。淨),當你有這麼多的代碼:)。 –
請在發佈問題前格式化您的代碼;它會大大增加被回答的機會。 – raina77ow
我認爲需要jsfiddle以及一切看起來不錯我覺得過濾功能是問題。爲什麼不做一個每一個,然後調用一個函數,並使用「this」作爲檢查值的參考。 –