Javascript 使用JS确定是否已正确填写所有表单字段
*编辑:修复了所有输入现在都在一个表单上验证的问题。但是,我只能添加一个变量来检查是否为空,一旦添加更多变量,提交函数就无法工作。我已经尝试了很多事情Javascript 使用JS确定是否已正确填写所有表单字段,javascript,html,input,Javascript,Html,Input,*编辑:修复了所有输入现在都在一个表单上验证的问题。但是,我只能添加一个变量来检查是否为空,一旦添加更多变量,提交函数就无法工作。我已经尝试了很多事情 function validateForm() { var inputVelocity = document.getElementById("dzCalculator").inputVelocity.value; var inputYellowPhase = document.getElementById("
function validateForm() {
var inputVelocity = document.getElementById("dzCalculator").inputVelocity.value;
var inputYellowPhase = document.getElementById("dzCalculator").inputYellowPhase.value;
var inputRedPhase = document.getElementById("dzCalculator").inputInterPhase.value;
var inputReactionTime = document.getElementById("dzCalculator").inputReactionTime.value;
if(inputVelocity === "" && inputYellowPhase === "" && inputRedPhase === "" && inputReactionTime === ""){
alert("Input all fields to calculate.");
return false;
}
}
我已经检查了HTML匹配项-确实如此。但是我发现我不能使用onsubmit=“return validateForm”,因为这根本不起作用
这只是表格中的4个数值,共有7个数值。但当我能让这四个工作时,我就能让它们都工作
我如何使用JS来确保没有输入留空或为空?我已经做了,所以它只接受数字和小数点。因此,任何人都不能添加错误的字段。但目前,他们可以将一个字段留空,这意味着我的计算器会生成一个NaN响应
此外,如何确保我的一个字段不能接受大于1或小于0的数字。我在输入标记中尝试了min=“0”max=“1”,但因为我已删除微调器,所以这不起作用
因此,总而言之,我希望确保在单击按钮时,所有表单部分都已填写,并且其中一个字段不接受大于1或小于零的数字。有两个选项可供选择
- 您可以使用querySelector选择所有输入(表单标记内),并通过循环检查每个输入的值
- 使用此技巧选择器获取所有无效输入
document.querySelectorAll('input:not([value]):not([value=”“]))代码> 用更精确的选择器替换
输入
step
属性
参考:
取决于您希望何时验证表单字段
例如:提交时的表单验证
函数validateForm(){
var x=document.forms[“myForm”][“fname”].value;
如果(x==“”){
警告(“必须填写姓名”);
返回false;
}
}
姓名:
这对我很有用。你可以使用它,无论你想要与否,都可以设计它的样式。您确实需要JQuery。它有强大的选择器
<!DOCTYPE html>
<html lang="en">
<head>
<style type="text/css">
body{
font-size: 12px;
}
.main-container{
display: flex; /* DO NOT CHANGE */
height: 100vh; /* DO NOT CHANGE */
width: 100%; /* DO NOT CHANGE */
}
.c-message{
display: flex; /* DO NOT CHANGE */
position: fixed; /* DO NOT CHANGE */
top: 0px; /* DO NOT CHANGE */
left: 0px; /* DO NOT CHANGE */
width: 100%; /* DO NOT CHANGE */
height: 100%; /* DO NOT CHANGE */
}
.c-msgbox{
padding: 30px;
text-align: center;
margin: auto; /* DO NOT CHANGE */
background-color: #e4e4e4;
border-radius: 4px;
border: 1px solid #adadad;
-webkit-box-shadow: 0px 0px 50px rgba(0, 0, 0, 0.60);
-moz-box-shadow: 0px 0px 50px rgba(0, 0, 0, 0.60);
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.40);
}
.standerd-button2{
border: none;
font-family: arial,helvetica,clean,sans-serif;
font-size: 10px;
font-weight: 600;
color: white;
background: #1A709F;
padding: 3px;
text-align: center;
vertical-align: middle;
-webkit-border-radius: 3px;
width: max-content;
min-width: 50px;
margin: 2px;
}
.standerd-button2:hover{
background: crimson;
cursor: default;
}
.f-table {
display: table;
width: max-content;
padding: 5px;
border-spacing: 2px;
}
.f-tablerow {
display: table-row;
}
.f-tablecell{
display: table-cell;
}
.label-cell-r{
text-align: right;
}
.dd-required{
margin: auto;
color: red;
}
input, select{
border: 1px solid lightgrey;
}
</style>
<script type="text/javascript" src="JQuery.js"></script>
</head>
<body>
<div class="main-container">
<div>
<form id="f1" name="f1">
<div class="f-table">
<div class="f-tablerow">
<div class="f-tablecell label-cell-r">
<label for="firstname">First Name</label>
</div>
<div class="f-tablecell input-cell">
<input id="firstname" name="firstname" type="text" data-er="First Name"/>
<span class='dd-required'>*</span>
</div>
</div>
<div class="f-tablerow">
<div class="f-tablecell label-cell-r">
<label for="lastname">Last Name</label>
</div>
<div class="f-tablecell input-cell">
<input id="lastname" name="lastname" type="text" data-er="Last Name"/>
<span class='dd-required'>*</span>
</div>
</div>
<div class="f-tablerow">
<div class="f-tablecell label-cell-r">
<label for="company">Company</label>
</div>
<div class="f-tablecell input-cell">
<select id="company" name="company" data-er="Company Name">
<option value="0"> - Select Comapny - </option>
<option value="1">Company 1</option>
<option value="2">Company 2</option>
<option value="3">Company 3</option>
<option value="4">Company 4</option>
</select>
<span class='dd-required'>*</span>
</div>
</div>
</div>
<input id="b1" type="submit" value="Submit" />
</form>
</div>
<div>
<script type="text/javascript">
$.fn.CustomAlert = function (options, callback) {
var settings = $.extend({
message: null,
detail: null,
yesno: false,
okaytext: null,
yestext: null,
notext: null
}, options);
var frm = "";
detail = "<b>" + settings.detail + "</b>";
message = "<b>" + settings.message + "</b>";
if (settings.detail === null) {
detail = "";
};
frm = frm + message + "<div style='text-align: left; margin-top: 15px; margin-bottom: 15px;'>" + detail + "</div>";
if (settings.yesno === false) {
frm = frm + "<input id='ok' type='button' value='" + settings.okaytext + "' class='standerd-button2' />";
} else {
frm = frm + "<div><input id='yes' type='button' value='" + settings.yestext + "' name='yes' class='standerd-button2' />" +
"<input id='no' type='button' value='" + settings.notext + "' name='no' class='standerd-button2' /></div>";
};
var frmesg = "<div id='cmessage' name='cmessage' class='c-message'>" +
"<div class='c-msgbox'>" +
"<form>" + frm + "</form>" +
"</div>" +
"</div>";
$(".main-container").append(frmesg);
if (!settings.yesno) {
$("#cmessage #ok").click(function () {
$("#cmessage").remove();
callback(false);
});
} else {
$("#cmessage #yes").click(function () {
$("#cmessage").remove();
callback(true);
});
$("#cmessage #no").click(function () {
$("#cmessage").remove();
callback(false);
});
};
};
$.fn.JsFormCheck = function () {
var MessData = "";
this.find('select, input').each(function () {
if ($(this).attr("data-er")) {
m = $(this).attr("data-er");
switch ($(this).get(0).tagName) {
case "INPUT":
if ($(this).val().length === 0) {
MessData = MessData + "- " + m + "<br>";
$(this).css('border-bottom', '2px solid green');
};
break;
case "SELECT":
if ($(this).val() === "0") {
MessData = MessData + "- " + m + "<br>";
$(this).css('border-bottom', '2px solid green');
};
break;
};
};
});
if (MessData.length > 0) {
MessData = "<b>" + MessData + "</b>";
x = $().CustomAlert({message: "<b>Please fill in the following required fields to continue.</b>",
detail: MessData,
okaytext: "Close",
yesno: false});
return true;
} else {
return false;
};
};
$('#f1 #b1').click(function(event){
event.preventDefault();
Error = $("#f1").JsFormCheck();
if(Error === false){
null;
//Do Something
};
});
</script>
</body>
身体{
字体大小:12px;
}
.主货柜{
显示:flex;/*不更改*/
高度:100vh;/*请勿更改*/
宽度:100%;/*不更改*/
}
c-信息{
显示:flex;/*不更改*/
位置:固定;/*不改变*/
顶部:0px;/*请勿更改*/
左:0px;/*请勿更改*/
宽度:100%;/*不更改*/
高度:100%;/*请勿更改*/
}
.c-msgbox{
填充:30px;
文本对齐:居中;
页边距:自动;/*不更改*/
背景色:#e4;
边界半径:4px;
边框:1px实心#adadad;
-webkit盒阴影:0px 0px 50px rgba(0,0,0,0.60);
-moz盒阴影:0px 0px 50px rgba(0,0,0,0.60);
盒子阴影:0px 0px 20px rgba(0,0,0,0.40);
}
.标准按钮2{
边界:无;
字体系列:arial,helvetica,clean,无衬线;
字体大小:10px;
字号:600;
颜色:白色;
背景:#1A709F;
填充:3倍;
文本对齐:居中;
垂直对齐:中间对齐;
-webkit边界半径:3px;
宽度:最大含量;
最小宽度:50px;
保证金:2倍;
}
.标准按钮2:悬停{
背景:深红色;
游标:默认值;
}
.f-table{
显示:表格;
宽度:最大含量;
填充物:5px;
边界间距:2px;
}
.f-tablerow{
显示:表格行;
}
.f-表细胞{
显示:表格单元格;
}
.label-cell-r{
文本对齐:右对齐;
}
.dd必需{
保证金:自动;
颜色:红色;
}
输入,选择{
边框:1px纯色浅灰色;
}
名字
*
姓
*
单位
-选择Comapny-
第一公司
公司2
公司3
公司4
*
$.fn.CustomAlert=函数(选项,回调){
变量设置=$.extend({
消息:空,
详细信息:空,
是的,错,
okaytext:null,
yestext:null,
notext:null
},选项);
var frm=“”;
detail=“”+设置。detail+”;
message=“”+设置。message+”;
如果(settings.detail==null){
细节=”;
};
frm=frm+消息+“”+详细信息+“”;
如果(settings.yesno==false){
frm=frm+“”;
}否则{
frm=frm+“”+
"";
};
var frmesg=“”+
"" +
“”+frm+“”+
"" +
"";
$(“.main container”).append(frmesg);
如果(!settings.yesno){
$(“#cmessage#ok”)。单击(函数(){
$(“#cmessage”).remove();
回调(假);
});
}埃尔斯