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

时间:2016-01-14 20:59:22

标签: javascript html angularjs struts

我正在使用带角度js的struts 1.2发送jsp表单,我在设置输入字段的值时遇到问题。这是javascript代码,用于设置当页面加载时从服务器进入jsp的字段“city”的默认值,这是因为我不能使用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);
});

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

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

有人可以告诉我,我提交的内容是什么,以便能够在提交时提交字段中输入的内容而不是总是发送默认值吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

已解决,显然问题是绑定,我将javascript代码的提交功能放在页面底部并将其选中。