在我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事件不能?

有帮助吗?

解决方案

在表单动作标签不引用与任何this

相反,使用绝对位置

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

其他提示

修改:多亏了克里斯托夫的评论,下面,我意识到我的巨大的监督。下面是实现他的建议的最终溶液。

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

这应该做你所需要的。我不给你在我以前的答复我的全部注意力道歉。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top