如何更改 html 文本字段的默认值

How to change the value of an html text field from its default value

我正在使用 struts 1.2 和 angular js 发送 jsp 表单,我在设置输入字段的值时遇到问题。这是 javascript 代码,用于在页面加载时将来自服务器的字段 "city" 的默认值设置为 jsp,这是因为我无法使用 html struts 标记要预填充,因为它不支持我需要在输入字段中使用的 angularjs 属性:

<script>
$(function() {
    var defaultCity = $("[name='city']").val();
    $('#city').val(defaultCity);
});
</script>

这是 jsp 部分:

<body ng-controller="TypeaheadCtrl">
<form name = "LocationForm" method="POST" action="someaction.do">
 <div class='container-fluid typeahead-demo' >

                            <div class="section">
                                <label class="field prepend-icon">
                                    <input type="text" ng-model="asyncSelected" uib-typeahead="address for address in getLocation($viewValue)"  id="city" class="gui-input" placeholder="City">
                                    <span class="field-icon"><i class="fa fa-envelope"></i></span>
                                    <html:hidden property="city"/>
                                </label>
                            </div><!-- end section -->
    </div>
......
</form>

这个问题是,一旦我在该字段中输入内容以覆盖预先填充的内容,文本不会采用,struts 操作仅获取页面加载的原始值。所以我尝试在 jsp 中添加以下内容,以查看在提交表单时是否可以更改值,这是代码:

    //Needed to override load value at submition time
$("[name='LocationForm']").submit(function(e) {
    var cityValue= $("[name='city']").val();
    $('#city').val(cityValue);
});

但是它也没有用,即使我可以在浏览器中看到我输入的新值,调试它仍然 return 原始值。

如果另一方面,我删除了所有 javascript,那么 jsp 将发送新键入的值,但是,它不会将字段的默认值设置为加载时间,我需要两件事都发生,加载默认值,如果我在输入字段中键入不同的内容,则应提交新值。

有人可以告诉我我缺少什么才能提交字段中输入的任何内容,而不是总是发送默认值吗?

提前致谢

已解决,显然是绑定的问题,我把javascript代码的提交功能放在了页面底部,它捡到了。