我想在不使用任何框架的情況下驗證引導模式中的表單。它實際上是一個簡單的模式,只有一個輸入文本和兩個按鈕「關閉」和「發送」。 用戶應該在輸入框中輸入他/她的名字,然後點擊發送。該表單是與方法帖子一起發送的。在引導模式中驗證輸入文本
我想要做的是,如果用戶沒有在輸入框中輸入任何東西,並點擊按鈕「發送」,輸入框應該有一個紅色的邊框,而不是默認的藍色邊框。下面是我的模態代碼:
<div id="myModal" class="modal fade" tabindex="-1">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<!--form-->
<form class = "form-horizontal" id="myForm" method="post" action="test.php" role="form">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">My modal</h4>
</div>
<div class="modal-body">
<p>
Please enter your name:
</p>
<br/>
<div class="form-group">
<div class="col-lg-12">
<label class="control-label" for="firstname">Name</label>
<input type="text" class="form-control required" id="firstname" name="firstname">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button id="myFormSubmit" class="btn btn-primary">Send</button>
</div>
</form>
</div>
</div>
</div>
我試着用JavaScript來更改類的輸入文字has-error
,但它不會產生紅色輪廓。當我點擊發送它通過郵寄方法發送空值,而不是 這裏是我的javascript代碼:
<script type="text/javascript">
$('#myForm').validate({
rules: {
name: {
minlength: 1,
required: true
},
},
highlight: function (element) {
$('#firstname').removeClass('has-success').addClass('has-error');
},
success: function (element) {
$('#firstname').removeClass('has-error').addClass('has-success');
}
});
</script>
我覺得我在這裏混了一大堆東西。我還是新來的bootstrap和JavaScript。我怎樣才能獲得理想的紅色輪廓? 謝謝。
編輯: 驗證功能:
function validate() {
var x = document.forms["myForm"]["firstname"].value;
if (x == null || x == "") {
return false;
}
}
感謝您的幫助。我明白了一兩件事。我嘗試了你的代碼,但是輸入從一開始就是紅色的。我想我沒有很好地表達自己。我希望只有在點擊發送按鈕後才能將輸入概述爲紅色。如果輸入爲空並且用戶點擊發送按鈕,則它應該將輸入概述爲紅色。 – mkab 2015-01-15 17:01:58
我明白了,我把'HTML'代碼放在'DOM'應該顯示'has-error' CSS類的位置。你只需要JavaScript而不是HTML。初始狀態不應該有'has-error'類。 – 2015-01-15 17:06:19
噢,我明白了。即使輸入文本爲空,仍然會提交表單。也許我應該阻止窗體的默認操作,因爲窗體使用的是後期方法。我怎麼去解決這個問題? – mkab 2015-01-15 17:09:35