我有一個jsp 2個道場autocompleters。當它們的值改變時,它們都會觸發相同的操作。現在我希望在動作文件中我應該知道哪個autocompleter被改變了。
我做了什麼:
通常情況下,在這種情況下我會調用JavaScript更改隱藏字段的值,然後訪問操作文件就知道隱藏字段的值被改變了。但是我使用「onChange」屬性來調用javascript(不幸的是)不適用於「autocompleter」。我必須使用「valueNotifyTopics」來調用該操作。
下面是代碼:
<s:url id="scriptURL" action="viewContactInfo" />
<sd:div href="%{scriptURL}" listenTopics="viewContactInfo" formId="contactInfo" showLoadingText="false" preload="false">
<s:form id="contactInfo">
<sd:autocompleter autoComplete="false" name="customer" list="customerList" valueNotifyTopics="viewContactInfo"/>
<sd:autocompleter autoComplete="false" name="contact" list="contactList" valueNotifyTopics="viewContactInfo"/>
<s:hidden id="chngd" value="initial"/>
</s:form>
</sd:div>
我希望使用類似這樣的:
onchange="dojo.byId('chngd').value='some value'; dojo.event.topic.publish('viewContactInfo');"
代替
valueNotifyTopics="viewContactInfo"
請告知周圍的情況得到的一些方法我已經提到過。
謝謝!
如果我錯過了任何所需的信息,請留下評論。
我不明白;我認爲我們[已經通過這個](http://stackoverflow.com/questions/7565149/calling-a-java-script-function-when-value-of-a-dojo-auto-completer-changes)。爲什麼不能更改主題處理程序代碼中的隱藏值?在任何情況下,答案都是正確的,隱藏的領域需要一個名字,並且在行動中是一個設置者。 –
在主題處理程序中。 –
嗨戴夫,我的問題沒有得到解決,線程死了,所以不得不開始一個新的線程。如果我無法訪問操作中隱藏字段的值,則添加名稱屬性可能會有所幫助。但問題是我無法改變隱藏字段的價值。無論如何,我添加了屬性並檢查,以防萬一,但沒有發生。 – kanishk