javascript - 按下按钮时如何在文本框上触发验证?
问题描述
我有两个用于名字和姓氏的文本框。我还有一个按钮来保存数据。该按钮有一个事件处理程序,它从字段中获取数据并使用 jquery 通过对我的 API 的 ajax 调用发布它们。
我想对我的两个文本框进行验证(所以它们不能留空),但我不知道当我的按钮被按下时如何触发它。我没有<form>
为此使用标签;按下按钮时,我正在执行 ajax 调用。
解决方案
我想验证我的两个textboxes
(所以它们不能留空),但我不知道当我的按钮被按下时如何触发它。我没有<form>
为此使用标签;按下按钮时,我正在执行 ajax 调用。
表单验证的答案。我假设First name
并且Last name
只能包含alphabets ,i.e., only a-z and A-Z
.
//This function will trim extra whitespaces form input.
function trimInput(element){
$(element).val($(element).val().replace(/\s+/g, " ").trim());
}
//This function will check if the name is empty
function isEmpty(s){
var valid = /\S+/.test(s);
return valid;
}
//This function will validate name.
function isName(name){
var valid = /^[a-zA-Z]*$/.test(name);
return valid;
}
$('#myForm').submit(function(e){
e.preventDefault();
var fname = $(this).find('input[name="fname"]');
var lname = $(this).find('input[name="lname"]');
var flag = true;
trimInput(fname);
trimInput(lname);
if(isEmpty($(fname).val()) === false || isName($(fname).val()) === false){
alert("First name is invalid.");
flag = false;
}
if(isEmpty($(lname).val()) === false || isName($(lname).val()) === false){
alert("Last name is invalid.");
flag = false;
}
if(flag){
alert("Everything is Okay");
//Code to POST form data goes here...
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="myform" id="myForm" method="post" action="#">
<input type="text" name="fname" placeholder="Firstname">
<input type="text" name="lname" placeholder="Last Name">
<input type="submit" name="submit" value="Submit">
</form>
我没有<form>
为此使用标签。
然后代码会像
//This function will trim extra whitespaces form input.
function trimInput(element) {
$(element).val($(element).val().replace(/\s+/g, " ").trim());
}
//This function will check if the name is empty
function isEmpty(s) {
var valid = /\S+/.test(s);
return valid;
}
//This function will validate name.
function isName(name) {
var valid = /^[a-zA-Z]*$/.test(name);
return valid;
}
$('#submit').click(function() {
var fname = $('#fname');
var lname = $('#lname');
var flag = true;
trimInput(fname);
trimInput(lname);
if (isEmpty($(fname).val()) === false || isName($(fname).val()) === false) {
alert("First name is invalid.");
flag = false;
}
if (isEmpty($(lname).val()) === false || isName($(lname).val()) === false) {
alert("Last name is invalid.");
flag = false;
}
if (flag) {
alert("Everything is Okay");
//Code to POST form data goes here...
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="fname" name="fname" placeholder="Firstname">
<input type="text" id="lname" name="lname" placeholder="Last Name">
<button type="button" id="submit" name="submit">Submit</button>
检查jsFiddle上的代码。希望这会有所帮助。
推荐阅读
- mysql - 脚本冻结。想取 1 个月前到 60 个月前“女性”的平均数。这部分代码对我来说是冻结的
- python - 人员列表中 2 人或 3 人的所有组合 [Python]
- makefile - 制作配方中的管道超出规则?
- python - 如何使 np.argsort 将空字符串放在数组的末尾而不是开头
- javascript - 在javascript中合并具有相同索引的json列表
- path - ZSH:不要将 $PATH 中列出的文件夹中包含的子文件夹视为可执行文件
- cordova - 如何在cordova-plugin-kunder-accountmanager插件中使用cordova中的帐户管理方法?
- c# - 通过 ASP.NET MVC 发布非常复杂的数据结构
- octave - Octave 中的整数除法
- javascript - 分别处理同一实例的多个异常