Javascript 按钮或隐藏字段上的html验证

Javascript 按钮或隐藏字段上的html验证,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,想知道是否有人能帮忙。作为表单的一部分,我使用一系列按钮来获取满足感,而不是单选或下拉。我使用jquery捕获按钮的值并将其添加到一个隐藏字段——表单用于提交信息的字段 所有的工作都很好,但是,我想进行验证,以确保捕获到答案-但是HTLM5验证不支持按钮或隐藏字段。是否有一个was我可以使用JS检查提交时是否按下了按钮,如果没有,则切换该字段的html验证程序 这里是我到目前为止的代码 <div class="form-group"> <label class="con

想知道是否有人能帮忙。作为表单的一部分,我使用一系列按钮来获取满足感,而不是单选或下拉。我使用jquery捕获按钮的值并将其添加到一个隐藏字段——表单用于提交信息的字段

所有的工作都很好,但是,我想进行验证,以确保捕获到答案-但是HTLM5验证不支持按钮或隐藏字段。是否有一个was我可以使用JS检查提交时是否按下了按钮,如果没有,则切换该字段的html验证程序

这里是我到目前为止的代码

    <div class="form-group">
<label class="control-label required input_satisfaction" for="feedbackQuestions[56]">Please rate the venue facilities: <span class="required ">*</span></label>
<input required="required" type="hidden" name="feedbackQuestions[56]" id="feedbackQuestions_56">
<div id="feedbackQuestions_56_group" class="row">
<div class="col-xs-3"><button class="satisfactionBtn btn btn-primary btn-lg btn-block" required="required" name="Questions[56][0]" value="Excellent">Excellent</button></div>
<div class="col-xs-3"><button class="satisfactionBtn btn btn-primary btn-lg btn-block" required="required" name="Questions[56][1]" value="Good">Good</button></div>
<div class="col-xs-3"><button class="satisfactionBtn btn btn-primary btn-lg btn-block" required="required" name="Questions[56][2]" value="Satisfactory">Satisfactory</button></div>
<div class="col-xs-3"><button class="satisfactionBtn btn btn-primary btn-lg btn-block" required="required" name="Questions[56][3]" value="Poor">Poor</button></div>
</div>
    <script>
            $('#feedbackQuestions_56_group .satisfactionBtn').click(function (e) {
                e.preventDefault();
                $('#feedbackQuestions_56_group .satisfactionBtn').each(function( index ) {
                    $( this ).removeClass('active');
                });
                var thisval = $(this).val();
                $('#feedbackQuestions_56').val(thisval);
                $(this).addClass('active');
            });
          </script>
</div>

请为场馆设施评分:*
杰出的
好
满意的
贫穷的
$(“#反馈问题_56_group.satisfactionBtn”)。单击(函数(e){
e、 预防默认值();
$(“#反馈问题_56_group.satisfactionBtn”)。每个(函数(索引){
$(this.removeClass('active');
});
var thisval=$(this.val();
$('u 56')反馈问题.val(thisval);
$(this.addClass('active');
});

我知道我需要在页面下方的submit按钮上添加一个触发器,这样我就可以执行jquery。单击(),然后在我检查之前阻止该事件,但不确定如何实际检查或如何触发验证。

因为隐藏字段值是由代码而不是用户填充的,所以代码应该验证该值(或者不需要验证)

这听起来很奇怪,隐藏字段需要验证

已编辑

如果确实需要验证隐藏的字段,则原始方法不起作用,但您可以通过添加不透明度:0样式来完成

添加这样的样式可以使其不可见但不隐藏,因此验证应该像往常一样正常工作


但请记住,您必须将type=“hidden”更改为type=“text”,我实际上会将其存储为全局JS变量,而不是隐藏字段。如果需要,可以通过jQuery将该值重新分析到隐藏字段,但我看不出这有什么用处。此外,div在JS中也是可选的,因此您不需要它们只是其中一个

var isSelected=false;
$(“#反馈问题_56_group.satisfactionBtn”)。单击(函数(e){
e、 预防默认值();
$(“#反馈问题_56_group.satisfactionBtn”)。每个(函数(索引){
$(this.removeClass('active');
});
var thisval=this.id;
console.log(“thisval:+thisval”);
$('u 56')反馈问题.val(thisval);
$(this.addClass('active');
isSelected=true
});
$('#onSubmit')。单击(函数(){
控制台日志(isSelected);
//
//查看ajax post命令
//
如果(isSelected==true){
//在这里打电话
}
否则{
警报(“请选择评级”)
}
})

请为场馆设施评分:
*
杰出的
好
满意的
贫穷的
提交

为什么不对隐藏字段中的值进行自定义验证?自定义验证是什么意思?很遗憾,隐藏字段不支持所需的attr。我可以使用隐藏字段的val()作为我的检查,以查看它是否已被回答-但我将如何触发验证错误?我的问题是,如何验证它。隐藏字段仅用于捕获值,以允许在post中捕获数据,因为按钮本身不保存数据。用户正在做出选择,我只需要确保他们做出选择这应该是一个评论。隐藏字段以前可能已经显示过,因此需要验证。你不知道OP的用例。我明白你的意思-有点逃学-但它会起作用!希望这会有所帮助you@gsusonline另外,jQuery.val()似乎不适用于您使用它的目的,它现在应该可以使用id而不是感谢您的建议-需要修改,因为这不是页面上的唯一表单类型,所以需要修改全局变量部分-但这是一个优雅的解决方案@gsusonline,它是否足够好,可以进行一次投票,还是一次回答?如果您有更多字段,我建议您将它们全部收集到一个JavaScript对象(即变量)中,然后在通过ajax发布表单之前验证JavaScript对象的所有字段是否已填充。你有机会了解ajax吗?它非常强大。