我有一组单选按钮。其中两个在不同日期可见。 我正在验证它们以确保在允许提交之前至少选择其中一个。
这是我表格中的表格行,注意:在以下脚本中,我将输入ID更改为全部或唯一ID的输入ID。
<tr>
<td style="width: 120px">Select An Option *:</td>
<td>
<div >
<h3>text</h3>
<?php // date activator
$display_start = "2013-09-01";
$display_end = "2013-10-17";
if((date("Y-m-d") >= $display_start) && (date("Y-m-d") <=
$display_end)){ ?>
<input id="selection" type="radio" name="group1" value="Before17th" > text here </option></br></br>
<?php } ?>
<?php // date activator
$display_start = "2013-10-18";
$display_end = "2014-10-18";
if((date("Y-m-d") >= $display_start) && (date("Y-m-d") <=
$display_end)){ ?>
<input id="selection" type="radio" name="group1" value="After17th"> text here </option><br/></br>
<?php } ?>
<input id="selection" type="radio" name="group1" value="Already Own Devices"> text here </option><br/>
</div>
</td>
</tr>
我试过这个脚本进行验证,这个似乎只检查了第一个选项。如果我选择了第二个选项,则无法捕捉选择,使其成立。
if ( ($('input[name="group1"]').attr('checked') == false )) {
$("#errors").after('<span class="error">Please specify an option.</span>');
hasError = true;
}
我尝试了这个脚本,所有选项都有相同的输入ID。这仅在选择第一个选项时通过。选择的第二个选项仍然验证为false。
if ( ($("#selection").attr('checked') == false )) {
$("#errors").after('<span class="error">Please specify an option.</span>');
hasError = true;
}
我也试过这个脚本,我给每个输入id一个唯一的输入id。这很好用但是当我想POST到我的数据库时,我必须为每个输入id创建一个单独的列。
// validate option selection
if ( ($("#selection").attr('checked') == false ) && ($("#owndevices").attr('checked') == false )) {
$("#errors").after('<span class="error">Please select an option.</span>');
hasError = true;
}
if ( ($("#selection").attr('checked') == false ) && ($("#onsite").attr('checked') == false )) {
$("#errors").after('<span class="error">Please select an option.</span>');
hasError = true;
}
如果使用相同的输入ID检查脚本,是否有办法使脚本验证。或者可能使用值或组名?
由于
SQL错误,我需要将html名称更改为group1,然后插入VALUES。我之前输入了输入ID。
$sql = "INSERT INTO
ucm_signup
( company, address1, address2, city, province, zip, fname, lname, email, phone,
session, iama, buyfrom, group1 )
VALUES
( '$_POST[company]','$_POST[address1]','$_POST[address2]','$_POST[city]',
'$_POST[province]','$_POST[zip]','$_POST[fname]','$_POST[lname]','$_POST[mail]',
'$_POST[phone]','$_POST[session]','$_POST[iama]','$_POST[buyfrom]','$_POST[]')";
答案 0 :(得分:1)
你正在使用你写的一些内容走在正确的轨道上。但有两点需要注意:
尝试做类似
的事情var radios = $('input[name="group1"]:checked');
if (radios.length > 0) {
console.log('success');
} else {
console.log('you need at least one radio checked');
}
答案 1 :(得分:0)
我要做的第一件事就是将你的html代码与你的php分开。这被认为是糟糕的造型。
在你的html文件中,填写表单:
我只是缩写单选按钮,希望你能得到更大的图片:)
<form action="php-to-process.php" method="POST">
<input type="radio" name="selected" value="male">Something<br>
<input type="radio" name="selected" value="female">Something<br>
<input type="submit"/>
</form>
好吧,现在发生的事情就是当用户点击提交时,所选的值进入php页面。注意你是如何在php页面中访问name而不是id。
在你的php文件中你会有像
这样的东西<?php
$value = $_POST['selected'];
?>
然后你可以做任何你想做的事情。
如果您不想要提交按钮,则可以添加事件处理程序,例如
onClick="document.getElementById("formID").submit();"
所以当用户点击该按钮时,表单会提交。
这会回答你的问题吗?