JavaScript - 表单OnSubmit可以使用,但Action不可以

时间:2009-06-12 23:52:28

标签: javascript html xhtml onsubmit

在我的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.value,但action事件不能?

3 个答案:

答案 0 :(得分:11)

表单操作代码不会引用this

的任何内容

相反,请使用绝对位置

action="javascript:myFnc(document.getElementById('city-field').value)"

答案 1 :(得分:4)

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

<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>

这应该做你需要的。我很抱歉在之前的回复中没有全神贯注。

答案 2 :(得分:0)

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

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