Javascript 如何禁用“下一步”按钮,直到完成所有字段

Javascript 如何禁用“下一步”按钮,直到完成所有字段,javascript,jquery,forms,Javascript,Jquery,Forms,我正在尝试禁用“下一步”按钮,直到填写“品牌和型号”为止。我知道我需要使用if empty disable button功能,但我不知道如何去做。因为表单都在一个页面上,并且使用字段集在屏幕之间移动,所以我无法让它工作太多。第二个字段集工作正常,因为在填写完所有字段之前,您无法提交表单,但他们无法看到第一个字段集。因此,我只想禁用“下一步”按钮,直到填写完3个字段 (function() { $('form > input').keyup(functi


我正在尝试禁用“下一步”按钮,直到填写“品牌和型号”为止。我知道我需要使用if empty disable button功能,但我不知道如何去做。因为表单都在一个页面上,并且使用字段集在屏幕之间移动,所以我无法让它工作太多。第二个字段集工作正常,因为在填写完所有字段之前,您无法提交表单,但他们无法看到第一个字段集。因此,我只想禁用“下一步”按钮,直到填写完3个字段

         (function() {
          $('form > input').keyup(function() {

        var empty = false;
    $('form > input').each(function() {
        if ($(this).val() == '') {
            empty = true;
        }
    });

    if (empty) {
        $('#button').attr('disabled', 'disabled');
    } else {
        $('#button').removeAttr('disabled');
    }
});
})()
/*-表单导航-*/
var区间=未定义;
$(文档).ready(函数(){
$('.next')。在('click',getNext')上;
$('.previous')。在('click',getPrev');
});
函数getNext(){
var$curr=$('fieldset:visible'),
$next=($curr.next().length)?$curr.next():$('fieldset').first();
过渡($curr,$next);
}
函数getPrev(){
var$curr=$('fieldset:visible'),
$next=($curr.prev().length)?$curr.prev():$('fieldset').last();
过渡($curr,$next);
}
功能转换($curr,$next){
间隔时间;
$curr.hide();
$next.show();
}
字段集{
填充:0!重要;
边距:0!重要;
边界:0;
}
字段集:非(:类型的第一个){
显示:无;/*删除以查看所有FeildSet*/
}
#内容{
显示:表格;
宽度:100%;
利润上限:-10px;
填充底部:250px;/*页脚元素的高度*/
}
#持有者{
不透明度:1.0;
保证金:0自动;
边框:2px实心#174570;
背景色:#1F75BA;
宽度:525px;
显示:表格;
}
#中心舱{
背景色:白色;
填充:10px;
保证金:-10-15 0-15;
宽度:100%;
显示:表格;
}
#分{
字体大小:粗体;
字体大小:35px;
宽度:100%;
保证金:0自动;
文本对齐:居中;
颜色:#1F75BA;
边缘底部:10px;
显示:表格;
}
#cent2{
字体大小:粗体;
字体大小:25px;
宽度:100%;
保证金:0自动;
文本对齐:居中;
颜色:#1F75BA;
显示:表格;
}
#门派{
宽度:75%;
保证金:0自动;
边缘顶部:15px;
边缘底部:12px;
显示:表格;
}
#左{
颜色:白色;
浮动:左;
宽度:210px;
}
#对{
宽度:160px;
浮动:对;
}
输入[类型=收音机],输入[类型=复选框]{
显示:无;
}
输入[类型=收音机]+标签,输入[类型=复选框]+标签{
显示:内联块;
边界半径:5px;
填充物:3px18.5px;
页边距底部:0;
字体大小:14px;
线高:20px;
颜色:#F0F8FF;
文本对齐:居中;
文本阴影:0 1px 1px rgba(255255255,0.75);
垂直对齐:中间对齐;
光标:指针;
背景色:#0594CF;
背景图像:-莫兹线性梯度(顶部,#0594CF);
背景图像:-webkit渐变(线性,0.0,0.100%,从(#fff)到(#0594CF));
背景图像:-webkit线性渐变(顶部,#0594CF);
背景图像:-o-线性梯度(顶部,#0594CF);
背景图像:线性渐变(至底部,#0594CF);
背景重复:重复-x;
边框:1px实心#ccc;
边框颜色:#0594CF#0594CF#0594CF;
边框颜色:rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25);
边框底色:#0594CF;
过滤器:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);
过滤器:progid:DXImageTransform.Microsoft.gradient(enabled=false);
-webkit盒阴影:插入0 1px 0 rgba(255255255,0.2),0 1px 2px rgba(0,0,0.05);
-moz盒阴影:插入0 1px 0 rgba(255255255,0.2),0 1px 2px rgba(0,0,0.05);
盒影:插入0 1px 0 rgba(255255255,0.2),0 1px 2px rgba(0,0,0.05);
}
输入[类型=收音机]:选中+标签,输入[类型=复选框]:选中+标签{
背景图像:无;
大纲:0;
-webkit盒阴影:插入0.2px 4px rgba(0,0,0,0.15),0.1px 2px rgba(0,0,0.05);
-莫兹盒阴影:插入0.2px4pRGBA(0,0,0,0.15),0.1px2pRGBA(0,0,0,0.05);
盒影:插入0.2px4pRGBA(0,0,0,0.15),0.1px2pRGBA(0,0,0,0.05);
背景色:#0594CF;/*已选择*/
}
输入[type=“text”]{
填充:2px;
宽度:160px;
高度:28px;
边框:1px槽#174570;
-moz边界半径:5px;
-webkit边界半径:5px;
边界半径:5px;
}
挑选{
高度:29px;
宽度:165px;
填充:2px;
边框:1px槽#174570;
-moz边界半径:5px;
-webkit边界半径:5px;
边界半径:5px;
}
文本区{
填充:2px;
边框:px槽#174570;
-moz边界半径:5px;
-webkit边界半径:5px;
边界半径:5px;
高度:100px;
宽度:160px;
}
#但是{
浮动:对;
边缘顶部:10px;
右边距:66px;
宽度:75%;
位置:相对位置;
}
.行动按钮{
浮动:对;
右边距:10px;
左边距:5px;
文本转换:大写;
宽度:145px;
高度:37像素;
背景:#90b652;
字体大小:粗体;
颜色:白色;
边界:0无;
边界半径:6px;
光标:指针;
填充:10px 5px;
利润率:7px 13px;
}


您可以使用html5表单验证。在所有字段中都有值之前,它将不允许提交表单

HTML:


用户名

密码

确认密码

电子邮件


下面是一个JSFIDLE示例:

与其禁用按钮,一个更简单的解决方案是在按下按钮时进行验证。我已经更新了您的代码片段插图:它做了一个简单的检查——如果所有字段都已填写,请导航,如果没有,请弹出一条消息,指示用户填写每个字段

此外,每个按钮都应该有唯一的ID。ID不应在单个页面内重复

/*-表单导航-*/
var区间=未定义;
$(文档).ready(函数(){
$('.next')。在('click',getNext')上;
$('.previous')。在('click',getPrev');
});
函数getNext(){
var$curr=$('fieldset:visible'),
空=假
$next=($curr.next().length)?$curr.next():$('fieldset').first();
$curr.find('input[type!=button]')。每个(函数(){
if($(this.val()=''){
空=真
}
});
如果(!空){
过渡($curr,$next);
}否则{
警报('请填写所有字段!');
}
}
函数getPrev(){
var$curr=$('fieldset:visible'),
$next=($curr.prev().length)?$curr.prev():
 <form id="form-name">
     Username<br />
 <input type="text" id="user_input" name="username" required /><br />
     Password<br />
<input type="password" id="pass_input" name="password" required /><br />
     Confirm Password<br />
<input type="password" id="v_pass_input" name="v_password" required /><br />
     Email<br />
<input type="text" id="email" name="email" required /><br />     
<input type="submit" id="register" value="submit" />