2015-04-28 48 views
1

如何在保存x-editiable(http://vitalets.github.io/x-editable/)之前添加確認提示?如果對確認提示的響應是否定的,則應該關閉x可編輯對話框,並且不應更新該值。在保存x-editiable前添加確認提示

我想出了這個Fiddle,但第一個解決方案有點冗長,第二個解決方案(基於x-editable prompt before updating the value)不起作用。

Test 1<a href="javascript:void(0)" id="name1"></a> 
<br> 
Test 2<a href="javascript:void(0)" id="name2"></a> 

$('#name1').on('shown', function(e, editable) { 
    var button=$('input.myClass').parent().next().find('button.editable-submit'); 
    console.log(button,e,editable,this); 
    button.click(function(){ 
     if(!confirm("Are you sure you wish to proceed?")){ 
      editable.hide(); 
      return false; 
     } 
    }); 
}); 

$('#name1').editable({inputclass:'myClass'}); 

$('#name2').editable({ 
    validate: function (x) { 
     console.log(x,this); 
     if(!confirm("Are you sure you wish to proceed?")){ 
      //Doesn't work 
      return false; 
     } 
    } 
}); 

回答

1

x-editable documentation表示您需要在輸入無效時返回字符串。我已經使用一個工作示例更新了您的fiddle

$('#name2').editable({ 
    validate: function (x) { 
     console.log(x,this); 
     if(!confirm("Are you sure you wish to proceed?")){ 
      // Hide the editable 
      $('#name2').editable('toggle'); 
      return "invalid"; 
     } 
    } 
}); 
+0

我希望結果與我的第一個解決方案相同。您的解決方案絕對更簡潔,但顯示錯誤文本並且不會關閉對話框。我們可以在'validate'回調中獲得一個對話對象,這樣它可以被隱藏起來嗎? – user1032531

+0

@ user1032531我用切換呼叫更新了示例。小提琴也被更新。 –

+0

我剛剛想出了幾乎相同的東西,但是使用了'$(this).editable('hide');'。按照你的建議返回一個字符串是關鍵!謝謝! – user1032531