Javascript 两个输入字段之一是必需的
我有两个输入字段,一个是Javascript 两个输入字段之一是必需的,javascript,jquery,Javascript,Jquery,我有两个输入字段,一个是file,另一个是textarea <input class="input_field" type="file" name="title" /> <textarea class="input_field" name="info"></textarea> 我有。我们如何实现类似于if-else的条件,使其成为所需的字段之一?请参见此提琴 提交表单时,我修改了您的代码,使每个元素都有一个输入字段类 $(function(){
file
,另一个是textarea
<input class="input_field" type="file" name="title" />
<textarea class="input_field" name="info"></textarea>
我有。我们如何实现类似于if-else
的条件,使其成为所需的字段之一?请参见此提琴
提交表单时,我修改了您的代码,使每个元素都有一个输入字段类
$(function(){
$('form').submit(function (e) {
var failed = false;
$(".input_field").each(function() {
if (!$(this).val()) {
failed = true;
}
});
console.log(failed);
if (failed === true) {
e.preventDefault();
}
});
});
看到这把小提琴了吗
提交表单时,我修改了您的代码,使每个元素都有一个输入字段类
$(function(){
$('form').submit(function (e) {
var failed = false;
$(".input_field").each(function() {
if (!$(this).val()) {
failed = true;
}
});
console.log(failed);
if (failed === true) {
e.preventDefault();
}
});
});
根据你的问题,只有两种可能的情况:
- 如果一个字段或两个字段都已填充,则用户通过验证
- 如果未填写任何字段,则用户验证失败
if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
// Passed validation
} else {
// Failed validation
}
检查错误的一个简单模式是创建一个错误标志,当一个或多个验证检查失败时,将引发该标志。手动提交表单之前,请在脚本末尾评估此错误标志:
$(function(){
$('form').on('submit', function(e) {
e.preventDefault();
// Perform validation
var error = false;
if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
alert('Passed validation');
error = false;
} else {
alert('Please fill up one field');
error = true;
}
// Check error flag before submission
if(!error) $(this)[0].submit();
});
});
请参见此处的工作小提琴:根据您的问题,只有两种可能的情况:
- 如果一个字段或两个字段都已填充,则用户通过验证
- 如果未填写任何字段,则用户验证失败
if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
// Passed validation
} else {
// Failed validation
}
检查错误的一个简单模式是创建一个错误标志,当一个或多个验证检查失败时,将引发该标志。手动提交表单之前,请在脚本末尾评估此错误标志:
$(function(){
$('form').on('submit', function(e) {
e.preventDefault();
// Perform validation
var error = false;
if($('input[type="file"].input_field').val() || $('textarea.input_field').val()) {
alert('Passed validation');
error = false;
} else {
alert('Please fill up one field');
error = true;
}
// Check error flag before submission
if(!error) $(this)[0].submit();
});
});
请参阅此处的工作提琴:检查表单内部是否至少完成了一个,打破循环,选择提交,否则返回false
$(函数(){
$('form')。关于('submit',函数(e){
var doneOnce=false;
$(this).children().each(function()){
if($(this.val()){
doneOnce=真;
return false;//return false将中断。每个循环
}
});
警报(doneOnce)
如果(!doneOnce){
e、 预防默认值();
}
});
});代码>
检查表单内部是否至少完成了一项,打破循环,选择提交,否则返回false
$(函数(){
$('form')。关于('submit',函数(e){
var doneOnce=false;
$(this).children().each(function()){
if($(this.val()){
doneOnce=真;
return false;//return false将中断。每个循环
}
});
警报(doneOnce)
如果(!doneOnce){
e、 预防默认值();
}
});
});代码>
您可以用Javascript编写代码来验证表单。您必须创建onclick或onsubmit函数,该函数将检查输入字段是否为空。您可以编写类似以下代码的代码:
<script>
function validateForm() {
var fstname=document.getElementById("fname").value;
var lstname=document.getElementById("lname").value;
if(fstname===null || fstname===""){
alert("Plese choose a file.");
return false;
}
else if(lstname===null || lstname===""){
alert("Plese type file info.");
return false;
}
else{
return confirm("Your file: "+fstname+" and it of type "+lstname);
}
}
函数validateForm(){
var fstname=document.getElementById(“fname”).value;
var lstname=document.getElementById(“lname”).value;
如果(fstname==null | | fstname===“”){
警报(“请选择文件”);
返回false;
}
else if(lstname==null | | lstname===“”){
警报(“请输入文件信息”);
返回false;
}
否则{
返回确认(“您的文件:+fstname+”且类型为“+lstname”);
}
}
名字:
姓氏:您可以用Javascript编写代码来验证表单。您必须创建onclick或onsubmit函数,该函数将检查输入字段是否为空。您可以编写类似以下代码的代码:
<script>
function validateForm() {
var fstname=document.getElementById("fname").value;
var lstname=document.getElementById("lname").value;
if(fstname===null || fstname===""){
alert("Plese choose a file.");
return false;
}
else if(lstname===null || lstname===""){
alert("Plese type file info.");
return false;
}
else{
return confirm("Your file: "+fstname+" and it of type "+lstname);
}
}
函数validateForm(){
var fstname=document.getElementById(“fname”).value;
var lstname=document.getElementById(“lname”).value;
如果(fstname==null | | fstname===“”){
警报(“请选择文件”);
返回false;
}
else if(lstname==null | | lstname===“”){
警报(“请输入文件信息”);
返回false;
}
否则{
返回确认(“您的文件:+fstname+”且类型为“+lstname”);
}
}
名字:
姓氏:使用alert Message尝试手动代码使用alert Message尝试手动代码这不是很好的可伸缩性-如果OP想要向表单添加另一个输入,那么JS也需要更改。@DavidJones好吧,OP只询问了验证两个字段的问题,我想他不是在寻找可伸缩性。如果你想谈论可伸缩性,你必须重构你的代码来考虑对<代码> .npPixField,而不是简单地一次迭代它们。简言之,在不进一步了解OP打算在什么上下文中使用代码的情况下,我们将不知道可伸缩性是否会成为一个问题。这不是一个很好的可伸缩性-如果OP想在表单中添加另一个输入,那么JS也需要更改。@DavidJones好吧,OP只询问了验证两个字段,我想他不是在寻找可伸缩性。如果你想谈论可伸缩性,你必须重构你的代码来考虑对<代码> .npPixField,而不是简单地一次迭代它们。简而言之,如果不进一步了解OP打算在什么上下文中使用代码,我们就不知道可伸缩性是否会成为一个问题。