2009-12-08 58 views
0

我需要下列javascript的幫助。我的表單上有2個文本框和1個按鈕。我想要發生的是,如果用戶在文本框1中輸入值而不是文本框2,則不需要觸發事件。但是,如果在文本框中有一個值,然後是文本框2,那麼我想要回發一個帖子。我的代碼似乎並沒有這樣做,我會很感激,如果有人可以幫我解決這個問題或更好的解決方案。在此先感謝JavaScript條款回覆

function Changed(textControl) { 
    // alert(textControl.value); 
    var conlength = document.getElementById('<%=txtLength.ClientID %>'); 
    var conwidth = document.getElementById('<%=txtwidth.ClientID %>'); 
    if (conlength != null && conwidth != null) { 
     if (conlength.value != null && conlength.value != ' ' && conwidth.value != null && conwidth.value != ' ') { 
      // ' ' corresponds to c#'s String.Empty     
      __doPostBack(document.getElementById('<%=btncalcboardfeet.ClientID %>'), 'Calculate Board Feet Button event has been fired'); 
     } 
    } 
} 

回答

0

的而不是最後的if語句只是嘗試以下操作:

if (conlength.value && conwidth.value) { 
      // ' ' corresponds to c#'s String.Empty     
      __doPostBack(document.getElementById('<%=btncalcboardfeet.ClientID %>'), 'Calculate Board Feet Button event has been fired'); 
} 
+0

做到了!謝謝 – Kobojunkie 2009-12-09 00:29:05

+0

等等,只是另一回事!當我最初啓動我的頁面並在文本框1和文本框2中輸入值時,點擊事件被觸發,但文本框被清除其值,因此沒有其他事情發生。除了使這個工作正常嗎?還有什麼我需要做的嗎? – Kobojunkie 2009-12-09 01:06:54

+0

這似乎與此代碼無關。這裏沒有任何修改任何值。網頁上還有其他內容在運行嗎? – 2009-12-09 08:19:46

0

爲什麼不採取更簡單的方法...如果你滿足條件,程序單擊提交按鈕;-)它使用像jQuery的東西,即使你是超級簡單到諸如此類的事情:

$("#<%=btncalcboardfeet.ClientID %>").click(); 

這樣,你不必試圖找出內部javascript函數asp.net試圖調用(如可能在將來改變(但不太可能))。

編輯:非jQuery的版本:

document.getElementById("<%=btncalcboardfeet.ClientID %>").click(); 
+0

,將工作,如果我能在我的代碼使用jquery,但我不能這樣做。 – Kobojunkie 2009-12-09 00:33:16

+0

看到編輯,非jQuery版本一樣容易(儘管幾個字符更長);-) – 2009-12-09 17:04:00

0

如果您正在使用ASP.NET WebForms和使用ASP :TextBox來收集信息,你可以使用RequiredFieldValidator來確保這兩個字段在頁面回發之前都有一個值。

1

你需要看值的長度,而不是元素本身:

var conlength = document.getElementById('<%=txtLength.ClientID %>').value;