如何在没有jQuery验证插件和没有提交按钮的情况下在JavaScript中验证表单
How to validate a form in JavaScript without jQuery validation plugin and without submit button
我在html中有这个表单,我想在用户按下#btnPopup
时验证这个表单,这个按钮不是提交一个。我怎么能做到这一点,而不使用jQuery验证插件,在一个点击按钮?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="frmUsers" data-userid="">
<img id="btnClose" src="resources/img/close_window.png">
<h2 id="popupTitle"></h2>
<ul>
<li>
<label for="username">Username:</label>
<input type="text" id="username" name="txtUsername" placeholder="Please select username" required/>
</li>
<li>
<label for="level">Level:</label>
<input type="number" id="level" name="txtLevel" placeholder="Please select level" required/>
</li>
<li>
<label for="registrationStatus">RegistrationStatus:</label>
<select name="txtRegistrationStatus" id="registrationStatus" placeholder="Please select registration status" class="required">
<option value="Registered">Registered</option>
<option value="Unregistered">Unregistered</option>
</select>
</li>
<li>
<label for="registrationDate">RegistrationDate:</label>
<input type="text" id="registrationDate" name="txtRegistrationDate" placeholder="Please select date" required/>
</li>
<div class="btnZone">
<input class="btnDown" type="button" value=" " id="btnPopup" />
<input class="btnDown" type="button" value="Cancel" id="btnCancel">
</div>
</ul>
</form>
您可以使用ajax通过发送表单输入参数来实现您想要的,并将事件附加到您的按钮。
$('#btnPopup').on('click', function(){
// Fields validation
if( validation ){
$.ajax({
method: "POST",
url: "your_url",
dataType: 'json',
data: {
'username' : $('#username').val(),
'level' : $('#level').val()
...
}
})
.done(function( result ) {
// Do something
})
.fail(function(result, textStatus) {
// Do something when error happened
});
}else{
// Do something when your validations are bad.
}
});
不要忘记在服务器端验证参数。验证客户端可以很容易地通过。之后,您可以在ajax成功回调
您可以通过在#btnPopup上附加一个"Click"侦听器并在其中添加一个简单的提交:
var myButton = document.getElementById("btnPopup");
myButton.addEventListener("click" , function(){
/*
--Your Validation logic goes here--
*/
// You submit the Form when the Validation is over.
document.getElementById("frmUsers").submit();
});
现在您可以根据您想要验证表单的内容编写自己的Validation函数。一个非常简单和非常基本的验证将是创建一个通用函数,并按如下方式验证每个字段:
function validate(inputField){
var myInputField = document.forms["frmUsers"][inputField].value;
// Add some simple Validation Rules
if(myInputField == null || myInputField == ""){
// Do Something if validation fails [Eg: alert('error!!!');]
return false;
}
}
你可以这样使用上面的函数:
validate("txtUsername");
显然,您可以创建一个循环,遍历表单中的每个字段并对其进行验证。通常有很多方法来验证表单,上面的例子会让你在正确的轨道上。
重要:这是一个客户端验证。请记住,在100种情况中,有99种情况也需要配置服务器端验证。客户端验证不是100%安全的
是的,你可以做到。下面是示例代码,您可以使用
function validateForm() {
var x = document.forms["frmUsers"]["registrationDate"].value;
if (x == null || x == "") {
alert("Registration date must be filled out");
return false;
}
}
<input class="btnDown" type="button" value=" " id="btnPopup" onclick="return validateForm();/>
相关文章:
- 使用php脚本验证访问者的年龄,并在不刷新的情况下根据结果加载iframe
- 如何在不使用mvc 4中的模型的情况下进行客户端验证
- 如何通过Primefaces3.5使用JSF2.0验证并在成功的情况下打开一个新的选项卡
- 如何创建只允许用户在选中前一个复选框的情况下选择复选框的复选框验证
- 如何在不通过模型验证的情况下屏蔽文本输入中输入的字符
- 表单验证工作不正常,在不检查条目的情况下继续
- 如何在不使用javascript和asp.net选择dropdownlist值的情况下显示验证
- 在不使用任何http、https或ftp的情况下验证URL
- 在没有javascript的情况下呈现网页之前,用户如何验证和定制页面
- 在不重新运行jquery验证的情况下检查表单是否有效
- 我需要在不使用JavaScript的情况下验证我的表单
- 在不提交的情况下验证表单
- 如何在不打开新窗口的情况下在单页应用中执行 Dropbox 身份验证
- 用于 HTML 表单验证的正则表达式在没有空格的情况下开始
- 在没有插件的情况下验证验证码?-- 跨服务器开机自检
- 如何在没有javascript的情况下验证html文件
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 导致表单在未经验证的情况下提交的声明
- 只有在实时验证成功的情况下,提交表单后才打开一个花式框
- 需要帮助在没有提交按钮的情况下触发 jQueryTools 验证脚本