Javascript 如何获取未选中的单选按钮(Jquery)?
我正在用php和mysql构建一个动态移动问答应用程序。该应用程序包含10个选择题,其中一些(但不是全部)可能是单选按钮(其他是下拉选择) 我想确保在启用“提交”按钮之前已选中所有单选按钮。这是我在SO上找到的脚本:Javascript 如何获取未选中的单选按钮(Jquery)?,javascript,jquery,Javascript,Jquery,我正在用php和mysql构建一个动态移动问答应用程序。该应用程序包含10个选择题,其中一些(但不是全部)可能是单选按钮(其他是下拉选择) 我想确保在启用“提交”按钮之前已选中所有单选按钮。这是我在SO上找到的脚本: <script type="text/javascript"> $(document).ready( function() { $('#submitform').prop('disabled', true); inspectA
<script type="text/javascript">
$(document).ready( function() {
$('#submitform').prop('disabled', true);
inspectAllInputFields();
});
$('input[type=radio]').change(function() {
inspectAllInputFields();
});
function inspectAllInputFields(){
var count = 0;
$('.radio-button').each(function(i){
if( $(this).val() === '') { // this line doesn't work
count++;
}
if(count == 0){
$('#submitform').prop('disabled', false);
}else {
$('#submitform').prop('disabled', true);
}
});
}
</script>
$(文档).ready(函数(){
$('#submitform').prop('disabled',true);
inspectAllInputFields();
});
$('input[type=radio]')。更改(函数(){
inspectAllInputFields();
});
函数inspectAllInputFields(){
var计数=0;
$('.单选按钮')。每个(函数(i){
如果($(this.val()=''){//此行不起作用
计数++;
}
如果(计数=0){
$('#submitform').prop('disabled',false);
}否则{
$('#submitform').prop('disabled',true);
}
});
}
以下是表格代码的摘录(我刚刚使用了前几个问题,其中2个是radio,1个是select):
1.问题1
-
真的
-
假的
2.问题2?
-
真实的
-
伪造的
3.问题3
0-10%
11-20%
21-30%
31-40%
41-50%
51-60%
61-70%
71-80%
81-90%
91-100%
计算结果
如何修复jquery代码,以便仅当用户单击了所有单选按钮的某个内容时,才启用submit按钮?使用下面的javascript
$(document).ready( function() {
$('#submitform').prop('disabled', true);
inspectAllInputFields();
});
$('input[type=radio]').change(function() {
inspectAllInputFields();
});
function inspectAllInputFields(){
var count = 0;
$('#submitform').prop('disabled', false);
$('.radio-button').each(function(i){
count = $(this).find('input[type=radio]:checked').length;
if(count == 0){
$('#submitform').prop('disabled', true);
}
});
}
请同时检查您需要使用的功能
您可以使用jquery
is(“:checked”)
。
或者您可以尝试一种更好的方法,将输入字段设置为必填字段
$(文档).ready(函数(){
$('#submitform').prop('disabled',true);
inspectAllInputFields();
});
$('input[type=radio]')。更改(函数(){
inspectAllInputFields();
});
函数inspectAllInputFields(){
//如果两者都选中,则启用提交按钮
如果($(“输入[name=question1]”)是(“:选中”)&&($(“输入[name=question2]”)是(“:选中”)){
$('#submitform').prop('disabled',false);
}
}
的可能副本可能需要考虑解决方案中的选择器。谢谢-但问题是“this”指的是- 的radiobutton类,而不是单选按钮输入本身。所以这是行不通的:(我如何选择该UL类中的单选按钮输入?谢谢Adam,但现在发生的是它统计每个单选输入项。因此,对于上述示例,有2个单选组,但有4个单选输入。您的函数返回的是单选输入计数-因此,如果用户选择了问题1和问题2的答案,则将有2个输入。)将被选中,但其他两个将不被选中。因此,即使用户正确回答了两个问题,按钮仍将被禁用Hanks@AgamBanga-这就成功了!我将研究代码以了解此解决方案的具体工作原理。@Gauravkeer我很高兴能帮到您使用.attr()函数使用
.prop
@George如果stackoverflow上会有一个blooper卷盘,那么肯定会出现这种情况。另一个问题是,“this”指的是- 的radiobutton类,它不是单选按钮输入本身。因此这不起作用:(我如何选择该UL类中的单选按钮输入?仅查询输入元素
$('.radio button input')。每个(函数(I){
对不起,我的头部位于错误的位置。实际上,检查是否选中的是prop
而不是attr
函数。这仅在表单不是动态的情况下有效。)(即我事先知道哪些问题是单选的,哪些是精选的)但这个应用程序并非如此。因此,我无法硬编码字段名。有更好的方法吗?
$(document).ready( function() {
$('#submitform').prop('disabled', true);
inspectAllInputFields();
});
$('input[type=radio]').change(function() {
inspectAllInputFields();
});
function inspectAllInputFields(){
var count = 0;
$('#submitform').prop('disabled', false);
$('.radio-button').each(function(i){
count = $(this).find('input[type=radio]:checked').length;
if(count == 0){
$('#submitform').prop('disabled', true);
}
});
}
if($(this).prop('checked') !== false);
<script type="text/javascript">
$(document).ready( function() {
$('#submitform').prop('disabled', true);
inspectAllInputFields();
});
$('input[type=radio]').change(function() {
inspectAllInputFields();
});
function inspectAllInputFields(){
//If both checked enable submit button
if($("input[name=question1]").is(":checked") && $("input[name=question2]").is(":checked")) {
$('#submitform').prop('disabled', false);
}
}
</script>