我正在尝试提交具有通过javascript创建的某些值的HTML表单。但是,当我提交表单时,这些输入字段会丢失其值,而使用空字符串。我该怎么做,以防止在单击“提交”按钮后字段丢弃其新值?
表单代码:
<form id="post-form" class="save-form" method="POST" action="/posts" style="display: none">
<input placeholder="Title" name="title" /><br>
<input placeholder="Location" name="location" /></br>
<input placeholder="Content" name="content" /><br>
<input id="formlat" name="latitude" type="hidden" />
<input id="formlng" name="longitude" type="hidden" />
<input name="user_id" type="hidden" value="<%= current_user.id %>" />
<input type="submit" value="Submit"/>
</form>
相关的JavaScript代码:
var newlat = newmarker.getPosition().lat();
var newlng = newmarker.getPosition().lng();
document.getElementById("formlat").value = newlat;
document.getElementById("formlng").value = newlng;
设置默认值或不设置默认值总是会产生相同的结果:对于这些字段(或value =“”内部的任何内容),表单会以“”提交。但是,控制台显示这些字段已正确地用纬度/经度填充,直到我按下“提交”按钮,然后它们才恢复为默认值(在本例中为“”)。只有在Rails的日志中,我才能看到实际POST中的字段为空白。
但是,用户ID字段在提交时确实保留其值。因此,我认为该表单在单击“提交”按钮后会覆盖其值字段。有谁知道如何防止这种行为?预先感谢。