2014-09-22 47 views
0

我有jsf表單中的多個字段,包括文本,checkbok框,下拉列表等,它顯示了DB的值。我希望提交按鈕在默認情況下被禁用,並且只有在用戶對錶單中的任何字段進行更改時纔可點擊。請幫忙 !!在JSF表單上更改任何值的啓用按鈕

回答

0

沒有測試,但我會簡單地使用這樣的事:

$(document).ready(function() { 
    $('#formId input[type="submit"]').attr('disabled','disabled'); 
    $('#formId').change(function(){ $('#formId input[type="submit"]').removeAttr('disabled'); }); 
}); 

如果沒有在視圖中使用任何jQuery的功能已經(任何PrimeFaces例如AJAX按鈕),你可能需要添加:

<h:outputScript library="primefaces" name="jquery/jquery.js" /> 
1

對於一個簡單的表格,你可以使用一個用戶提到herethis jQuery插件。

編輯:

的插件是非常簡單易用,功能強大,是因爲比如你將不得不如果還原一個輸入字段內改變你的按鈕再次被禁用。

只要確保你包含js文件:

<h:outputScript name="path/jquery.are-you-sure.js"/> 

而且使用它,你必須添加一行:

$('#idofyourform').areYouSure(); 

之後,啓用和禁用提交按鈕你必須添加:

//All disabled by default 
$('#idofyourform').find('button[type="submit"]').attr('disabled', 'disabled'); 
//Enabled all when there are changes 
$('#idofyourform').bind('dirty.areYouSure', function() { 
    $(this).find('button[type="submit"]').removeAttr('disabled'); 
}); 
//Disable all when there aren't changes 
$('#idofyourform').bind('clean.areYouSure', function() { 
    $(this).find('button[type="submit"]').attr('disabled', 'disabled'); 
}); 

這兩個代碼都在文檔就緒函數中。

請注意,我使用按鈕 [type =「submit」],這是p:commandButton默認呈現的內容。如果是你的情況,你可以使用輸入法。

注意:這個插件還增加了OP沒有要求的額外功能(在不保存更改時導航時的對話框檢查)。如果您想要,可以禁用此功能:

$('#idofyourform').areYouSure({'silent':true}); 
+0

這不是一個好的答案,因爲它被認爲是僅鏈接的。請在答案中添加一個小例子。 – Xan 2014-09-22 10:38:15

+0

感謝您的提示!我添加了如何使用插件 – mrganser 2014-09-22 11:32:32