我在网页中重复使用javascript函数。我以相同的形式以两种不同的方式使用它。第一个绑定到输入字段的onChange,它工作正常。第二个是在窗体结尾处按钮的onClick。这里就是打开表单Javascript不能与onClick搭配使用
<form method="POST" action="new_emissions.php?action=<?php echo $action;?>"
id="emissionsform" enctype="multipart/form-data">
我会发布整个事情,但它变得有点长,不想烦你用的东西,工作。 这是的onChange它的工作原理
<td><input type="text" size=6 value="<?php echo $orno; ?>" name="orno"
id="orno"onChange="fLookup('orno', '<? echo $fileQuadJ; ?>', '<? echo $fileQuadO; ?>', '<? echo $fileQuadZ; ?>')"></td>
而这正是它不
<input type="submit" value="Save"
onClick="fLookup('all', '<? echo $fileQuadJ; ?>', '<? echo $fileQuadO; ?>', '<? echo $fileQuadZ; ?>')">
的的onChange和的onClick都是相同的窗体上的按钮。
这是JS函数的第一部分。它在http.status和http.readyState的if语句中失败。检查控制台的这两个,当onChange被调用时,一切看起来都很好,所有内容都可以正常工作。 onClick失败,因为http.status不是200. console显示为0.我无法弄清楚为什么onChange和onClick之间的处理方式会有所不同。我已经将onChange的JS函数复制并粘贴到onClick,但仍然没有任何结果。
function fLookup(field, quadJ, quadO, quadZ) {
var sendData = '';
sendData = sendData + '&cins='+document.getElementById('cins').value;
if(field == 'eser' || field == 'all')
sendData = sendData+'&eser='+document.getElementById('eser').value;
if(field == 'orno' || field == 'all')
sendData = sendData+'&orno='+document.getElementById('orno').value;
if(field == 'emno' || field == 'all')
sendData = sendData+'&emno='+document.getElementById('emno').value;
if(field == 'ddat' || field == 'all')
sendData = sendData+'&ddat='+document.getElementById('ddat').value;
if((field == 'cdat1' || field == 'all') && document.getElementById('cdat1'))
sendData = sendData+'&cdat1='+document.getElementById('cdat1').value;
if((field == 'cdat2' || field == 'all') && document.getElementById('cdat2'))
sendData = sendData+'&cdat2='+document.getElementById('cdat2').value;
if((field == 'cdat3' || field == 'all') && document.getElementById('cdat3'))
sendData = sendData+'&cdat3='+document.getElementById('cdat3').value;
if((field == 'cdat4' || field == 'all') && document.getElementById('cdat4'))
sendData = sendData+'&cdat4='+document.getElementById('cdat4').value;
if((field == 'cdat5' || field == 'all') && document.getElementById('cdat5'))
sendData = sendData+'&cdat5='+document.getElementById('cdat5').value;
if((field == 'cdat6' || field == 'all') && document.getElementById('cdat6'))
sendData = sendData+'&cdat6='+document.getElementById('cdat6').value;
if(quadJ == '1')
sendData = sendData + '&checkJ=1';
if(quadO == '1')
sendData = sendData + '&checkO=1';
if(quadZ == '1')
sendData = sendData + '&checkZ=1';
sendData = sendData + '&field='+field;
sendData = sendData + '&type=fLookup';
//alert(sendData);
http.abort();
http.open('post','emissionValidate.php');
http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http.send(sendData);
http.onreadystatechange = function()
{
console.log(http.readyState, http.status, sendData);
if(http.readyState == 4 && http.status == 200)
{
任何帮助或输入是非常感谢。另外,如果我对数据轻松,请让我知道。提前致谢!
一个较短的版本,为什么你的onclick使用在一个形式提交?你不能使用isset吗?您当前的提交按钮是否触发了您的表单操作?当你点击你的提交按钮时,它会去new_emissions.php?action = <?php echo $ action;?> – Bowenac
和任何新闻用户3210302? – mplungjan
@Bowenac它应该将信息发回到new_emissions.php。在这一点上,我会在我的提交按钮上解决POST问题,以防止出现问题。我提出了更新mplungjan的建议,但我开始怀疑我的FTP是否无法正常工作,因为它看起来没有变化。再次感谢您花时间浏览这些内容。对此,我真的非常感激! – user3210302