我的测验输入形式如下:
lstEmployee
如果我没有回答所有电台问题,如何隐藏提交按钮?
我有这个功能,但效果不好
<form method="post">
//for question 1
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz1" class="radio" value="answer a"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz1" class="radio" value="answer b"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz1" class="radio" value="answer c"/><span>a</span>
</label></div>
//for question 2
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz2" class="radio" value="answer a"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz2" class="radio" value="answer b"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz2" class="radio" value="answer c"/><span>a</span>
</label></div>
<input type="submit" value="submit">
答案 0 :(得分:1)
尝试使用jQuery选择器来实现这一目标。请尝试以下代码:
$(function() {
$('form input:radio').on('change', function() {
if($(":radio", "#myForm").length/3 === $(":radio:checked", "#myForm").length){
$('#submit-form').show();
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form method="post" id="myForm" >
//for question 1
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz1" class="radio" value="answer a"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz1" class="radio" value="answer b"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz1" class="radio" value="answer c"/><span>a</span>
</label></div>
//for question 2
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz2" class="radio" value="answer a"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz2" class="radio" value="answer b"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio" name="quiz2" class="radio" value="answer c"/><span>a</span>
</label></div>
<input type="submit" id="submit-form" style="display:none" value="submit">
&#13;
答案 1 :(得分:0)
我认为在创建JS代码之前必须正确使用class和id属性。
答案 2 :(得分:0)
快速肮脏的方式是:
# this second option replaces the call to parent with child and passes the
# named arguments that have been matched within the call to parent
#
parent2 <- function(a,b,c){
Call <- match.call()
Call[[1]] <- quote(child)
eval(Call)
}
P.S。我已从您的单选按钮中删除了$(function() {
//hide submit button
$(":submit").hide();
//The script needs to know how many radio button each group has
var groupRadioCount = $(":radio[name='quiz1']").length;
//All radio buttons (where name starts with 'quiz')
var $allRadio = $(":radio[name^='quiz']");
//All radio checked length
var allSelectedLen = $allRadio.length / groupRadioCount;
$('form :radio').on('change', function() {
$(":submit").toggle( $allRadio.filter(":checked").length === allSelectedLen);
});
});
属性,因为ID
在任何给定文档中必须是唯一的!
答案 3 :(得分:0)
在你的html表单中,在你的表单中输入id并提交按钮......你的单选按钮的每个id都必须是唯一的...你可以通过id =&#34; radio1&#34改变你的id ; ID =&#34;第二广播电台&#34; ID =&#34; radio3&#34;等等..你说,你有一个提交按钮,为什么你的提交是一个输入。
<form id="main-form" method="post">
<button id="Submit" type="submit" value="submit"></button>
用于无线电的id等等
//for question 1
<div class="input-group radio">
<label>
<input type="radio" id="radio1" name="quiz1" class="radio" value="answer a"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio2" name="quiz1" class="radio" value="answer b"/><span>a</span>
</label></div>
<div class="input-group radio">
<label>
<input type="radio" id="radio3" name="quiz1" class="radio" value="answer c"/><span>a</span>
</label></div>
之后你可能会问另一个提交按钮功能的问题
答案 4 :(得分:0)
以下是您当前HTML代码的示例实现:
$(function () {
$("form").submit(function (event) {
answer_groups = {};
$self = $(this);
// First we group the radio names
$self.find(':radio').map(function (key, radio) {
answer_groups[radio.name] = true;
})
// Then we check and see if there exists an answer for that group
Object.keys(answer_groups).map(function (group_name) {
// if not, then cancel the form being submitted.
if ($self.find(':radio[name="' + group_name + '"]:checked').length <= 0) {
alert('You must fill all questions before proceeding.');
event.preventDefault();
return false;
}
})
});
})
这里的想法只是迭代无线电组并检查每个组的价值。如果不存在,则取消正在提交的表单并返回警报(或某种错误)。