我有一个包含条目的表单字段
<label for='usrad_resi'>
Residential Address </label><input id='usrad_resi' name='usrad_resi' type='text' required>
在点击"same as above"复选框后,我设法在另一个文本框中获取值:
<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();}}
我的问题是,当试图访问$_POST['usrad_co_addr']使用php我得到一个'未定义的索引:usrad_co_addr'错误。不管'usrad_resi'字段是否为空,都会发生这种情况。为什么会这样?
在javascript中将该字段设置为禁用。禁用字段不提交。如果你想保持行为,仍然提交值,你可以创建一个隐藏字段,也复制数据在那里。
hoppa说的是真的。禁用字段不提交。你能做的是使用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;
}