4

在我的 上FORM,出于某种原因,我可以通过onsubmit但不使用来获取表单输入变量action

这有效:

<form onsubmit="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

这不起作用(this.city.value被发现为空)

<form action="javascript:myFunc(this.city.value);">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

为什么onsubmit能得到this.city.valueaction事件却不能呢?

4

3 回答 3

11

表单操作标签不引用任何内容this

相反,使用绝对位置

action="javascript:myFnc(document.getElementById('city-field').value)"
于 2009-06-13T00:20:10.367 回答
4

编辑:感谢克里斯托夫的评论,下面,我意识到我的巨大疏忽。这是实施他的建议的最终解决方案。

<form action="" onsubmit="myFunc(this.city.value); return false;">
    <p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>

这应该做你需要的。我很抱歉在我之前的回复中没有给予你全部的关注。

于 2009-06-13T00:03:52.120 回答
0

HTML 表单用于将数据提交回服务器上的脚本以进行数据处理。提交表单时,表单字段中的数据以名称-值对的形式传递给服务器。服务器端脚本可以用几种不同的语言编写,用于处理传入的数据并将新的 HTML 页面返回给浏览器。返回到浏览器的页面可以是“感谢您注册”消息或从数据库查询生成的搜索结果列表中的任何内容。

因为表单用于将数据发送到服务器上的另一个文件。在行动中,我们只能指定我们需要发送数据的路径。所以你不能得到表单所具有的值。

于 2009-06-13T04:47:43.420 回答