【发布时间】:2012-05-11 01:55:01
【问题描述】:
我已经在整个网络上搜索了此问题的解决方案。没有成功后,我来了。我有一个表单,其中有 3 个应该包含数据的字段。字段 1 是邮政编码,字段 2 和 3 分别是城市和州。
JS 函数 getCityByZipHome 和 getStateByZipHome 动态返回城市和州,并将值插入到 city2 和 state2 输入字段中。
无论出于何种原因,当我通过鼠标单击提交表单时.. 我通过 $_POST 查看数据。如果用户按 ENTER,则永远不会捕获数据,并且我永远不会从隐藏字段中看到该数据。
知道这里有什么问题吗?注意,我已经尝试了几乎所有的事件处理程序 onblur、onclick、onchange..etc。
<form method="post" name="something" action="xxSome.php">
<div class="s_row">
<label for="zippy">Enter Zip Code</label>
<input id="zipcode_home" tabindex="2" type="text" onkeypress="javascript:getCityByZipHome(document.getElementById('zipcode_home').value, this.form.elements['city3']);javascript:getStateByZipHome(document.getElementById('zipcode_home').value, this.form.elements['state3']);" name="zipcode_home"/>
<input id="state3" name="state3"type="hidden"/>
<input id="city3" name="city3" type="hidden"/>
<input type="submit" value="Start Now!"/>
</div>
</form>
我已经尝试在表单级别添加 onsubmit @ :
<form method="post" name="something" action="xxSome.php" onsubmit="javascript:getCityByZipHome(document.getElementById('zipcode_home').value, this.form.elements['city3']);javascript:getStateByZipHome(document.getElementById('zipcode_home').value, this.form.elements['state3']);">
<div class="s_row">
<label for="zippy">Enter Zip Code</label>
<input id="zipcode_home" tabindex="2" type="text" name="zipcode_home"/>
<input id="state3" name="state3"type="hidden"/>
<input id="city3" name="city3" type="hidden"/>
<input type="submit" value="Start Now!"/>
</div>
</form>
我已经尝试过 onblur 没有任何运气@输入级别:
<form method="post" name="something" action="xxSome.php">
<div class="s_row">
<label for="zippy">Enter Zip Code</label>
<input id="zipcode_home" tabindex="2" type="text" onblur="javascript:getCityByZipHome(document.getElementById('zipcode_home').value, this.form.elements['city3']);javascript:getStateByZipHome(document.getElementById('zipcode_home').value, this.form.elements['state3']);" name="zipcode_home"/>
<input id="state3" name="state3"type="hidden"/>
<input id="city3" name="city3" type="hidden"/>
<input type="submit" value="Start Now!"/>
</div>
</form>
在搞砸了之后,我实际上从来没有解决过这个问题;相反,我禁用了 ENTER 键作为提交方法。
我有一些非常严重的时间限制,但我相信这会在稍后出现,我肯定会回到这个问题。
【问题讨论】:
-
如果删除
onkeypress会发生什么?看到发布的数据了吗?如果是这样,可能在某处发生了一些 preventDefault ,或类似的事情。 -
我将 onkeypress 更改为 onchange 和同样的问题
-
你有萤火虫吗?如果没有得到它并在您的方法中放置断点,请执行失败的步骤,并查看在您按 Enter 时提交页面之前是否调用了它们。我尝试了我的样本并且它有效。如果您发送代码,如果您不知道如何使用它,我可以使用 firebug 对其进行测试。
-
没有它,也不知道如何使用它。学习永远不会太晚。我拿去看看能不能调试(我至少可以用Eclipses之类的调试器)
-
对于 html 和 javascript,firebug 非常棒,它是一个 firefox 插件。如果它在您单击按钮时起作用,则在您按 Enter 时它应该起作用,一旦您获得 firebug,您肯定会发现发生了什么。只需转到脚本选项卡,启用它们,重新加载页面,然后像使用 eclipse 一样放置一个断点,当你按下回车键时,如果它没有停止,那么它不会调用 hte 代码,如果它停止了,那么你可以检查对象,看看发生了什么。祝你好运,让我们知道结果如何
标签: javascript forms post