2011-11-17 116 views
0

我有這個代碼來連接刪除鏈接的確認對話框,我通過POST觸發。 這些鏈接工作正常時,我沒有任何POST到MVC控制器操作(沒有表單元素)。但是當我的表單元素的值需要被回發時,我當然需要一個提交按鈕。我也想用類似的腳本來連接確認對話框和提交按鈕。 實質上,對話框應該彈出,等待確認,如果確認,繼續將表單發佈到操作。按下提交按鈕後確認對話框

/** Delete links wire up **/ 
var deleteLinkObj; 
// delete Link 
$('.delete-link').click(function() { 
    deleteLinkObj = $(this); //for future use 
    $('#delete-dialog').dialog('open'); 
    return false; // prevents the default behaviour 
}); 

/** Delete dialogs initialisation **/ 
var i18n_deleteButtons = {}; 
i18n_deleteButtons[i18n.dialogs_continue] = function() { 
    $.post(deleteLinkObj[0].href, function (data) { //Post to action 
     if (data == 'True' || data == 'true') { 
      deleteLinkObj.closest('tr').hide('fast'); //Hide Row 
      //(optional) Display Confirmation 
     } 
     else { 
      //(optional) Display Error 
     } 
    }); 
    $(this).dialog('close'); 
}; 

上面明顯的代碼將無法工作,因爲一個按鈕是不是一個鏈接,它沒有href屬性..

+0

'var answer = confirm(「這裏的一個問題?」)'?或者你在找別的東西嗎? – ManseUK

回答

0

我會做一些類型檢查。您可以使用HTML5數據屬性是這樣的:

<button data-url="yoururl" class="delete-button">Button Text</button> 

而在你的JS做一次檢查:

var my_val = (!deleteLinkObj[0].href) ? $('.delete-button').data('url') : deleteLinkObj[0].href; 

這會搶無論是。

+0

這是指出我在正確的方向,雖然我不會在這個例子中使用數據屬性,但謝謝。正如我所看到的,jquery對數據屬性的支持在支持HTML5和非HTML5的瀏覽器中都有效,這是一個很好的選擇。 – mare

相關問題