获取“与上方相同”字段的“未定义索引”错误

时间:2011-12-15 10:31:31

标签: php javascript html forms

我有一个带有项目的表单字段

    <label for='usrad_resi'>
Residential Address </label><input id='usrad_resi' name='usrad_resi' type='text' required>

点击“与上面相同”复选框后,我设法获取另一个文本框中的值:

    <label for='co_addrcheckl'>
        Address </label><input type='checkbox' name='co_addrcheck' id='co_addrcheck' onSelect='sameAbove()'> Same as Above
    </li>
    <li>
        <label for='usrad_co_addr'>
        C/O Address </label><input id='usrad_co_addr' name='usrad_co_addr' type='text' required>

这个javascript是:

   var loc = document.getElementById('co_addrcheck');
   var home = document.getElementById('usrad_co_addr');
   var post = document.getElementById('usrad_resi');
   loc.onclick = function(){if(loc.checked)
   {    
        home.disabled = true; home.value = post.value;}
   else
   {home.disabled = false; home.select();}}

我的问题是,当尝试使用php访问$ _POST ['usrad_co_addr']时,我得到一个'未定义的索引:usrad_co_addr'错误。无论'usrad_resi'字段是否为空,都会发生这种情况。 出现这种情况的原因是什么?

2 个答案:

答案 0 :(得分:0)

您在javascript中将该字段设置为已禁用。禁用的字段未提交。如果你想保持行为并仍然提交值,你可以创建一个隐藏字段,并在那里复制数据。

答案 1 :(得分:0)

什么跳跃说的是真的。禁用的字段未提交。您可以做的是使用hidden对象发送此数据。

<input id='usrad_co_addr' type='text' required />
<input id='usrad_co_addr_h' name='usrad_co_addr' type='hidden' />

在你的Javascript中:

   var loc = document.getElementById('co_addrcheck');
   var home = document.getElementById('usrad_co_addr');
   var home_h = document.getElementById('usrad_co_addr_h');
   var post = document.getElementById('usrad_resi');
   loc.onclick = function(){
       if(loc.checked)
       {    
           home.disabled = true; 
           home.value = post.value;
       }
       else
       {
           home.disabled = false; 
           home.select();
       }
       home_h.value = home.value;
    }