我有一個字段窗體(文本輸入和提交按鈕)。這裏是表格代碼:當它應該返回true時返回false的css/javascript元素
<form id="new_skill" class="new_skill" method="post" action="/skills" >
<li>
<input id="resume-field" class="field field288" type="text"
value="Type a speciality you want to add to your profile"
title="Type a speciality you want to add to your profile"
name="skill[label]"></input>
</li>
<li class="td80">
<input class="button button-add button-add-disabled"
type="submit" value="ADD +" name="commit"></input>
</li>
</form>
使用javascript,如果在文本字段中輸入文本,提交按鈕應該是不可點擊的。如果該字段中沒有文字,則應該是可點擊的。我正在通過使用JavaScript來刪除和/或放回按鈕添加禁用的類。這裏是JavaScript:
(function($){
$(document).on('focusin', '#resume-field', function() {
$(this).parents().find('.button-add-disabled').removeClass('button-add-disabled');
}).on('focusout', '#resume-field', function(){
if(this.value==' '||this.title==this.value) {
$(this).parents().find('.button-add').addClass('button-add-disabled');
} else {
$(this).parents().find('.button-add').removeClass('button-add-disabled');
}
});
$('.button-add-disabled').click(function(){
return false;
});
}(jQuery));
這裏是CSS:預期和JavaScript工作
.button-add { width: 49px; height: 28px; border: solid 1px #8c8c8c; display: block;
font-size: 11px; line-height: 28px ; color: #fff; text-align: center;
font-family: 'Ubuntu', sans-serif; transition: none; margin: 0 0 0 auto;
border-radius: 3px; }
.button-add:hover { text-decoration: none;
-webkit-transition:none;
-moz-transition:none;
-ms-transition:none;
-o-transition:none;
transition:none;
}
.td80 .button-add { margin-left:35px !important; }
.button-add-disabled { background: url(/assets/add-specialities-disabled.png)
repeat-x 0 0; box-shadow: 0 0 0 0; margin-left:35px; }
.button-add-disabled:hover { background: url(/assets/add-specialities-disabled.png)
repeat-x 0 0; box-shadow: 0 0 0 0; }
的類正在發生變化。由於某些原因,即使.button-add-disabled沒有應用於表單元素,表單元素仍然返回false,因此不會提交。當「按鈕添加禁用」被javascript刪除時,表單應該提交。我可以看到服務器日誌。如果我從javascript「return:false」中刪除該行,則表單工作,所以我知道表單本身的作用。我很確定javascript有什麼問題。有任何想法嗎?
非常感謝@meager。我很困惑,但爲什麼「旁邊」代碼錯了?另外,我剛剛發佈了另一個與此相關的堆棧溢出問題:http://stackoverflow.com/questions/21053537/javascript-stops-working-when-switching-from-text-field-to-select – Philip7899