如果 2 个或更多输入字段不为空,则触发事件
Trigger an Event if 2 or more input field are not empty
我有一个条件,如果两个字段不为空,它将显示按钮。我的问题是如何执行事件,因为它仅在加载或加载网站时有效。我试过使用键控
.HTML
<input type="text" id="username" required="true">
<input type="email" id="email" required="true" >
<button type="submit" id="login">
Sign Up
</button>
.JS
$(document).ready(function() {
if ($('#email').is(':empty') && $('#username').is(':empty')){
$('#login').hide();
}
else {
$('#login').show();
}
});
https://jsfiddle.net/w0pohLeb/1/
您可以使用
input
事件。
// Bind `input` event on both the inputs
$('#email, #username').on('input', function() {
// toggle: If argument passed is
// true: show
// false: hide
$('#login').toggle($('#email').val() && $('#username').val());
}).trigger('input'); // Trigger event to call on page load
您不能使用 .is(':empty')
来检查值是否空,它仅用于检查标签是否为空并且不包含任何子项。相反,您需要使用:
$(input).val().trim().length === 0
因此,您的代码变为:
if ($('#email').val().trim().length === 0 && $('#username').val().trim().length === 0) {
而且,您需要将其附加到更好的事件,例如,在输入keyup
:
最终代码
$(document).ready(function() {
if ($('#email').val().trim().length === 0 || $('#username').val().trim().length === 0) {
$('#login').hide();
}
else {
$('#login').show();
}
$("#email, #username").keyup(function () {
if ($('#email').val().trim().length === 0 && $('#username').val().trim().length === 0) {
$('#login').hide();
}
else {
$('#login').show();
}
});
});
试试这个,希望这有帮助..:)
$(document).ready(function() {
$('body').on('change', 'input', validate);
validate();
function validate() {
var inputLength = 0;
$('input').each(function() {
if ($(this).attr('type') == 'text' || $(this).attr('type') == 'email' || $(this).attr('type') == 'password') {
$(this).val() == '' ? inputLength-- : inputLength++;
}
});
inputLength >= 2 ? notEmpty() : isEmpty();
};
function notEmpty() {
$('#login').show();
}
function isEmpty() {
$('#login').hide();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" id="username" required="true">
<input type="email" id="email" required="true">
<button type="submit" id="login">
Sign Up
</button>
小提琴链接 https://jsfiddle.net/j6y2d1ur/1/
相关文章:
- 在表单中的输入字段上提交事件
- 防止在输入字段上单击事件
- 如何在Javascript事件上从JSNI设置GWTClass字段
- javascript绑定另一个select2输入字段rails的select2 inputonchange事件的数据
- 使用jQuery捕获没有ID的字段上的更改事件
- 将单击事件添加到显示字段
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 当用户在输入字段事件中输入内容时,为该字段事件添加动画占位符
- 无法在 jquery 中的单击事件上生成动态输入字段
- 输入字段未使用 ng-keydown 事件更新
- 输入字段 (ng-modal) 完成后的事件 ($watch)
- 是否可以在字段有效时触发事件(html5)
- 当输入字段的值发生更改时,会触发什么事件
- 如何在字段更改时触发事件处理程序
- 为动态创建的字段jQuery创建一个函数或事件
- 自动完成 jquery 多个字段更改或 Tab 事件
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- 如果 2 个或更多输入字段不为空,则触发事件
- 为什么某些Facebook Graph API事件字段未定义
- 在完整日历中隐藏某些事件字段