2012-12-18 30 views
0

我在JSF中使用複合組件,並遇到了我需要使用的JavaScript的麻煩。我有以下腳本:jQuery初始化與表單ID

$(document).ready(function() { 
    $("#form_test\\:text_auto").bind("keyup",function() { 
     setTimeout(function() { 
     send_ajax(); 
     }, 500); 
    }); 
}); 

爲了能夠在不同的地方使用此功能,使用不同的表單標識符而不是prependId = false;我需要以某種方式初始化腳本與表單id(在這個例子中「form_test」)。

使用jQuery綁定類似「keyup」的事件效果很好,所以如果可能的話我想繼續使用這種機制。是否有可能以某種方式動態設置表單ID?

回答

0

什麼是這樣的:

$(document).ready(function() { 
    bindKeyupOnForm("form_test"); 
}); 

function bindKeyupOnForm(formId) { 
    $("#" + formId + "\\:text_auto").bind("keyup",function() { 
     setTimeout(function() { 
      send_ajax(); 
     }, 500); 
    }); 
} 
+0

感謝sp00m。讀了一下jQuery並測試了不同的解決方案後,我相信你是最好的。 – nivis

0

你可以嘗試這樣的:

$(document).ready(function() { 
    $("form\\:text_auto").bind("keyup",function() { // this will apply for each form tag 
    // if you need something from the form use $(this) variable 
    setTimeout(function() { 
     send_ajax(); 
    }, 500); 
}); 
+0

恐怕我需要具有特定的表單ID,因爲我還需要將其用於其他組件。 – nivis

+0

您可以使用表單ID'$(this).attr('id')':) – Naryl

0

謝謝您的回答。然而,我發現了另一種通過直接在腳本中設置表單id#(cc.attrs.formId)來解決它的方法。