[英]JavaScript: disable <button> until value is selected
我正在嘗試為html5表單實現一個javascript代碼,該代碼將負責禁用/啟用按鈕,直到未選擇select元素。 這是代碼:
HTML:
<form name="courseForm" id="courseForm">
<select name="coursetype" id="coursetype" onchange="enableStartBtn()">
<option value="0" selected="selected">Select here...</option>
<option value="1">CourseName 1</option>
<option value="2">CourseName 2</option>
<option value="3">CourseName 3</option>
</select>
<button type="button" id="startBtn" disabled="disabled" onclick="Test()">Start</button>
</form>
和JavaScript :
function enableStartBtn() {
$('#startBtn').removeAttr('disabled');
}
function Test() {
var form = $('#courseForm');
var course = $('#coursetype', form).val();
if (course == '0') {
alert('Select the course first!');
} else if (course == '1') {
alert('CourseName 1 is selected!');
} else if (course == '2') {
alert('CourseName 2 is selected!');
} else if (course == '3') {
alert('This course is not implemented yet');
}
}
我在我的代碼中使用JQuery 1.9.1 ,一切看起來都不錯,但是當選擇了when值時,按鈕不啟用。 任何幫助,將不勝感激。
更新 :抱歉,伙計們忘了提到我也在使用JQuery Mobile 1.3.0 ,所以不包括jquery mobile它可以工作,但是jquery mobile不行。 這是jsfiddle版本: http : //jsfiddle.net/dozent/UVQ4m/
<form name="courseForm" id="courseForm">
<select name="coursetype" id="coursetype">
<option value="0" disabled>Select here...</option>
<option value="1">CourseName 1</option>
<option value="2">CourseName 2</option>
<option value="3">CourseName 3</option>
</select>
<button type="button" id="startBtn" disabled>Start</button>
</form>
並做:
var courses = ['1','2']; // available courses
$('#coursetype').one('change', function() {
$('#startBtn').prop('disabled', false);
});
$('#startBtn').on('click', function() {
var val = $('#coursetype').val(),
msg = $.inArray(val, courses) != -1 ? 'CourseName '+val+' is selected!' : 'This course is not implemented yet';
alert(msg);
});
使用prop()
function enableStartBtn() {
$('#startBtn').prop('disabled',false); //<----to remove disable attr of the button
}
你需要在這里更改按鈕的屬性,而不僅僅是刪除屬性
包含在標題區域中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.