如何在三个输入元素中有值时触发JavaScript函数
How to trigger a JavaScript function when there are values in three input elements?
当三个输入框上都有值时,如何触发事件?例如,我有三个输入元素:
<input type = "text" name = "item1" id = "item1" value="">
<input type = "text" name = "item2" id = "item2" value="">
<input type = "text" name = "item3" id = "item3" value="">
当这三个输入元素有一个值时,我想使用JavaScript输出一个结果,当它不满足条件时自动返回null。
<span> item1,item2,item3 has value </span>
EDIT1:
只有当3个输入框都有值时才显示结果,否则返回null。
EDIT2: 当3个输入框有值,我想设置一个复选框attr为真,否则false当它不是
使用onKeyUP
事件,检查输入值是否为$(e).val().length>0
$('input[id^=item]').keyup(function(evt){
var hasVal=Array.from($('input[id^=item]').filter((i,e)=>$(e).val().length>0)).map((e)=>$(e).attr('id')).join(',')
$('span').html((hasVal.length)?hasVal+' has value':'No input has value')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type = "text" name = "item1" id = "item1" value="">
<input type = "text" name = "item2" id = "item2" value="">
<input type = "text" name = "item3" id = "item3" value="">
<br />
<span> </span>
标题>
试试这个。如果你需要在第三个输入中显示,那么在第三个输入中使用onfocus而不是onchange。
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#showText').hide();
});
function canShowText(){
if($('#item1').val().length>0 && $('#item2').val().length>0 && $('#item3').val().length>0)
$('#showText').show();
}
</script>
</head>
<body>
<input type="text" name="item1" id="item1" value="" onchange='canShowText()'><br>
<input type="text" name="item2" id="item2" value="" onchange='canShowText()'><br>
<input type="text" name="item3" id="item3" value="" onchange='canShowText()'><br>
<span id='showText'> item1,item2,item3 has value </span>
</body>
</html>
您可以使用.toArray()
, .every()
, input
事件
function handleValues() {
alert("all three inputs have value");
span.html(arr.map(function(el) {return el.value}).join(","))
}
function handleInput(e) {
arr.every(function(el) {
return el.value.length;
})
? handleValues()
: !!span.html("") && alert("all three inputs do not have value");
}
var input = $("input"), arr = input.toArray(), span = $("span");
input.on("input", handleInput);
handleInput();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type = "text" name = "item1" id = "item1" value="">
<input type = "text" name = "item2" id = "item2" value="">
<input type = "text" name = "item3" id = "item3" value=""><br>
<span></span>
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery