我是Javascript的新手。但我必須在我的一個項目中使用它。javascript onchange中的代碼和函數中的相同代碼有什麼區別?
我有一個選項卡式控件,用於設置頁面上各種事件的隱藏控件的值(選項卡點擊和下拉列表)。隱藏的控件被提供一個JSON字符串,並且單擊一個按鈕來執行一些服務器端代碼並在頁面控件中填充數據。
當我在隱藏輸入的onchange事件中直接運行此代碼時,行爲與當我將JavaScript放入函數中時不同。
我需要把它拉出來,這樣我才能在函數中做一些其他小事情,這些事情似乎對onchagne事件中的內聯代碼非常複雜。
以下是正常運行的代碼。
<input type="hidden" id="<%= ASP_SSRS.ClientID %>_tracDatState"
onchange="$('#<%= ASP_SSRS.ClientID %>').val(this.value);
document.getElementById('<%= btnSendHiddenField.ClientID %>').click();" />
與本代碼進行比較。其中有不同的影響。
<input type="hidden" id="<%= ASP_SSRS.ClientID %>_tracDatState" onchange="compareUnitValues(this.value)" />
<script type ="text/javascript">
function compareUnitValues(args) {
$('#<%= ASP_SSRS.ClientID %>').val(args);
document.getElementById('<%= btnSendHiddenField.ClientID %>').click();
}
</script>
在此先感謝您的任何見解。 Tom
什麼*是*不同的效果呢? – CodingIntrigue
單擊的按鈕是包含reportviewer控件的Web部件的一部分。 「inline」javascript(是我應該如何引用它的),可以在單擊任何選項卡的情況下正確刷新報告查看器的服務器數據。有多個標籤,其中嵌入了webpart/reportviewer。通過函數調用,只有一個webpart/reportviewers會刷新,其他人不刷新。但是我看到回發上在服務器上執行完全相同的代碼。奇怪。 – tomepenn
我看不到代碼 – CodingIntrigue