CodeIgniter-PHP在无线电输入上设置无线电

CodeIgniter-PHP在无线电输入上设置无线电,php,javascript,html,codeigniter,validation,Php,Javascript,Html,Codeigniter,Validation,我在一个网站上工作,遇到了一个问题。为了预先设置或重新输入选定的值,Codeigniter允许您使用set_收音机来解决问题,如下所示: <td>Do You Have a PayPal Account <span class="error">*</span> : </td> <td colspan="2" align="left" valign="top"><label> <!-- used for val

我在一个网站上工作,遇到了一个问题。为了预先设置或重新输入选定的值,Codeigniter允许您使用set_收音机来解决问题,如下所示:

<td>Do You Have a PayPal Account <span class="error">*</span> : </td>
<td colspan="2" align="left" valign="top"><label>   
  <!-- used for validation -->
    <input type="hidden" id="temp_mid" value="" />
    <input name="mail_account" type="radio" id="p_same" value="same" onclick="dohide_show(this.value);" <?php echo set_radio('mail_account', 'same'); ?>/> Yes(same as email address as above.)<br/>
    <input name="mail_account" type="radio" id="p_diff" value="diff" onclick="dohide_show(this.value);" <?php echo set_radio('mail_account', 'diff'); ?>/> Yes(different than above.)<br/>
    <input name="mail_account" type="radio" id="p_checkInMail" value="checkInMail" onclick="dohide_show(this.value);" <?php echo set_radio('mail_account', 'checkInMail'); ?>/> No(I would prefer to receive a check in the mail.)                  
     <?php echo form_error('mail_account'); ?>           

 </td>
function validate_playpal()
        {   
            var temp=$('#temp_mid').val();
            if(temp=="")
            {
                alert('Please select the PayPal account option.');                  
                $('#p_same').focus();
                return false;
            }
            if(document.getElementById('p_diff').checked== true && document.getElementById('paypal_emailid').value=='')
            {
                alert('Please provide your PayPal email address.');
                document.getElementById('paypal_emailid').focus();
                return false;
            }

            if(document.getElementById('paypal_emailid').value!='')
            {
                if(!email_format(document.getElementById('paypal_emailid').value)){
                    alert('Please enter valid email address.');
                    document.getElementById('paypal_emailid').value="";
                    document.getElementById('paypal_emailid').focus();
                    return false;               
                }
            }
            return true;
        }
有人知道为什么这不起作用,即使它正在正确地重新填充表单吗?谢谢

编辑:

对于每个询问Mid_temp功能的人来说,我觉得它只是隐藏了不需要选择的按钮。在我的代码中,只提到了以下几个地方:

    $('#bx').hide();
if(document.getElementById('p_diff').checked==true){    
    $('#bx').show();
}

function dohide_show(val){
    if(val=='diff')
    {       
        $('#bx').show();
        $('#paypal_emailid').val('');
        document.getElementById('p_diff').checked=true;
        $('#temp_mid').val('clicked');
    }
    else if(val=='same')
    {       
        $('#bx').hide();
        $('#paypal_emailid').val($('#email_id').val());
        $('#temp_mid').val('clicked');  
    }
    else
    {
        $('#bx').hide();
        $('#paypal_emailid').val($('#email_id').val());
        $('#temp_mid').val('clicked');
    }

}
在这里,在一个完全独立的文件中:

function hide_box()
            {
                $('#bx').hide();
                $('#paypal_emailid').val('');
                $('#temp_mid').val('clicked');
            }
            function show_box()
            {
                $('#bx').show();
                $('#paypal_emailid').focus();
                $('#temp_mid').val('clicked');
            }

此外,Paypal电子邮件ID只是检查用户输入的Paypal电子邮件地址(如果他们有Paypal帐户)。谢谢大家的帮助。

我看到您没有重新填充
id=“temp\u mid”
字段,而是在这里检查
如果(temp==”)

。也许您也需要重新填充它?

您会收到什么错误消息,“请选择PayPal帐户选项”

这将始终失败

<input type="hidden" id="temp_mid" value="" />

......
var temp=$('#temp_mid').val();
if(temp=="")
{
    alert('Please select the PayPal account option.');                  
    $('#p_same').focus();
    return false;
}

......
var temp=$('#temp_mid').val();
如果(温度==“”)
{
警报('请选择PayPal帐户选项');
$('p#u same')。焦点();
返回false;
}

正如@Mikhail建议的那样,您没有重新填充
temp\u mid
隐藏字段的值。为了避免重新填充,您只需处理该字段,并使用jQuery以以下方式检测是否已选择单选按钮选项:

function validate_playpal()
{   
    if($('[name="mail_account"]:checked').size() > 0)
    {
        alert('Please select the PayPal account option.');                  
        $('#p_same').focus();
        return false;
    }
    ...
    return true;
}
注意第三行
$('[name=“mail\u account”]:checked')中的
if
语句。size()>0


希望有帮助-

请提供
dohide\u show(此.value)功能调用什么警报?什么是
paypal\u emailid
元素?填充
temp\u mid
元素的功能是什么?请提供更多关于您的问题的信息,我将尽力帮助您。明天我将尝试向您提供更多关于此问题的信息,因为我现在无法访问它。Sorry电子邮件ID只是查看用户是否有paypal电子邮件,然后验证它,如果他/她没有,则不必担心它。名为“请选择Paypal帐户选项”的警报。Temp_mid只是看看是否显示这组问题。我已经把新代码放在编辑栏上了。好吧,它并不总是失败的……只有当其他东西失败的时候。但是等等,为什么总是失败?好吧,我总是得到请选择贝宝选项后,其他失败的验证是固定的。请更新您的代码上面与您所做的任何更改。temp_mid做什么?是否只是隐藏收音机盒。将该代码添加到编辑中。尝试将
替换为
,这意味着如果在帖子中传递了
邮件帐户
字段,则使用
单击的
值重新填充
temp\u mid
字段