我正在使用帶有角度js的struts 1.2發送jsp表單,我在設置輸入字段的值時遇到問題。下面是javascript代碼,用於在頁面加載時將服務器的字段「城市」設置爲jsp的默認值,這是因爲我無法使用html struts標記預先填充,因爲它不支持angularjs屬性我需要在輸入字段使用:如何將html文本字段的值從其默認值更改爲
<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將發送新的類型值,但是,它不會在加載時設置字段的默認值,我需要這兩件事情發生,加載默認值,如果我在輸入字段中鍵入不同的東西,那麼應該提交新的值。
有人可以告訴我什麼,我錯過了能夠提交任何在提交字段上鍵入並不總是默認值發送過來?
在此先感謝