在 bootstrap 模态中验证输入文本
Validate input text in bootstrap modal
我想在不使用任何框架的情况下验证 bootstrap 模式中的表单。它实际上是一个简单的模式,只有一个输入文本和两个按钮 "Close" 和 "Send"。
用户应在输入框中键入 his/her 名称,然后单击发送。表单是使用 post.
方法发送的
我想要做的是,如果用户没有在输入框中输入任何内容并点击按钮 "Send",输入框应该有一个红色的边框环绕它而不是默认蓝色边框。这是我的模态代码:
<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 将输入文本的 class 更改为 has-error
但它不会产生红色轮廓。当我点击发送时,它通过 post 方法发送空值而不是
这是我的 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;
}
}
div 在靴带中...
<div class="form-group">
<div class="row">
<label class="col-xs-2 col-sm-2 control-label">city:</label>
<div class="col-xs-3 col-sm-3 formGroups"
id="city_form1">
<form:input name="city" class="form-control"
placeholder="City" data-toggle="tooltip"
data-placement="bottom" title="City" maxlength="15" />
<small class="help-block col-sm-offset-0 col-sm-9"
style="display: none;">city must require</small>
</div>
</div>
</div>
如您所见,显示 .help-block:none 现在您编写 javascript 函数并检查验证,如果验证现在通过,则显示:block ... 就是这样可以做到
享受引导带:)
您需要更改 input
parent 元素的 CSS
类 div.form-group
, 不是 input
本身:
单击提交按钮后的 HTML
应如下所示:
<div class="form-group has-error">
<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>
为此,请将您的 JavaScript
代码更改为:
<script type="text/javascript">
$('#myForm').on('submit', function(e) {
var firstName = $('#firstname');
// Check if there is an entered value
if(!firstName.val()) {
// Add errors highlight
firstName.closest('.form-group').removeClass('has-success').addClass('has-error');
// Stop submission of the form
e.preventDefault();
} else {
// Remove the errors highlight
firstName.closest('.form-group').removeClass('has-error').addClass('has-success');
}
});
</script>
非常简单
只需通过 javascript 函数
将 class .has-error 应用到 div
<div class="form-group has-error">
<div class="row">
<label class="col-xs-2 col-sm-2 control-label">city:</label>
<div class="col-xs-3 col-sm-3 formGroups"
id="city_form1">
<form:input name="city" class="form-control"
placeholder="City" data-toggle="tooltip"
data-placement="bottom" title="City" maxlength="15" />
</div>
</div>
</div>
像这样在输入字段中使用 required
<input type="text" class="form-control required" id="firstname" name="firstname" required/>
我想在不使用任何框架的情况下验证 bootstrap 模式中的表单。它实际上是一个简单的模式,只有一个输入文本和两个按钮 "Close" 和 "Send"。 用户应在输入框中键入 his/her 名称,然后单击发送。表单是使用 post.
方法发送的我想要做的是,如果用户没有在输入框中输入任何内容并点击按钮 "Send",输入框应该有一个红色的边框环绕它而不是默认蓝色边框。这是我的模态代码:
<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 将输入文本的 class 更改为 has-error
但它不会产生红色轮廓。当我点击发送时,它通过 post 方法发送空值而不是
这是我的 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;
}
}
div 在靴带中...
<div class="form-group">
<div class="row">
<label class="col-xs-2 col-sm-2 control-label">city:</label>
<div class="col-xs-3 col-sm-3 formGroups"
id="city_form1">
<form:input name="city" class="form-control"
placeholder="City" data-toggle="tooltip"
data-placement="bottom" title="City" maxlength="15" />
<small class="help-block col-sm-offset-0 col-sm-9"
style="display: none;">city must require</small>
</div>
</div>
</div>
如您所见,显示 .help-block:none 现在您编写 javascript 函数并检查验证,如果验证现在通过,则显示:block ... 就是这样可以做到
享受引导带:)
您需要更改 input
parent 元素的 CSS
类 div.form-group
, 不是 input
本身:
单击提交按钮后的 HTML
应如下所示:
<div class="form-group has-error">
<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>
为此,请将您的 JavaScript
代码更改为:
<script type="text/javascript">
$('#myForm').on('submit', function(e) {
var firstName = $('#firstname');
// Check if there is an entered value
if(!firstName.val()) {
// Add errors highlight
firstName.closest('.form-group').removeClass('has-success').addClass('has-error');
// Stop submission of the form
e.preventDefault();
} else {
// Remove the errors highlight
firstName.closest('.form-group').removeClass('has-error').addClass('has-success');
}
});
</script>
非常简单
只需通过 javascript 函数
将 class .has-error 应用到 div<div class="form-group has-error">
<div class="row">
<label class="col-xs-2 col-sm-2 control-label">city:</label>
<div class="col-xs-3 col-sm-3 formGroups"
id="city_form1">
<form:input name="city" class="form-control"
placeholder="City" data-toggle="tooltip"
data-placement="bottom" title="City" maxlength="15" />
</div>
</div>
</div>
像这样在输入字段中使用 required
<input type="text" class="form-control required" id="firstname" name="firstname" required/>