2011-08-04 45 views
2

是否有一段Javascript會阻止表單提交按鈕執行功能Javascript確認刪除 - 如果沒有不提交表單? Codeigniter

我使用的是使用MVC模式的CodeIgniter框架。

所以,當你點擊按鈕,它調用一個控制器功能,然後調用模型等功能

我用各種各樣的東西在Javascript中包括回去,歷史回去嘗試。有什麼會阻止任何事件發生?

這裏是我的代碼:

function confirmation() { 
    var answer = confirm("Delete Record?") 
    if (answer) 
    { 

    } 
    else 
    {  //reloads current page - however it still continues to function 
     window.redirect("http://localhost/midas/index.php/control_panel/user_records"); 
    } 
} 

它仍然繼續,如果我說「取消」做的功能。有沒有辦法阻止瀏覽器?

這是我的PHP代碼:

//js = is a variable which stores the javascript code 
echo form_submit('view','View', $js); 

這將創建HTML輸出像這樣:

<input type="submit" onclick="confirmation()" value="View" name="view"> 

回答

2

在這是造成後..然後把一個函數調用的OnClick事件的按鈕爲那個按鈕。讓該函數返回true以繼續POST或返回false來取消操作。

1

嘗試在您的window.redirect之後的else聲明末尾添加return false;

編輯:

看你onclick事件代碼後,我會建議您變更onclick看起來是這樣的:

<input type="submit" onclick="confirmation(); return false;" value="View" name="view"> 
+0

可以簡單的寫'的onclick =「返回確認(‘的問題?’);」'自天然'確認()'方法返回基於所述用戶選擇一個布爾值。在用戶取消時,點擊事件將返回false並阻止表單操作。 op的原始函數'confirmation()'不是必需的。 – twmulloy

2
function confirmation() { 
    var answer = confirm("Delete Record?") 
    if (answer) { 

    } else { 
    //reloads current page - however it still continues to function 
    return false; 
    }  
} 

也許返回false的方法將停止表單提交。取決於你如何調用確認功能。

+0

還沒有繼續,我應該整合我的JavaScript與我的PHP功能?目前,JavaScript只是發佈一條消息,就像您在代碼中看到的一樣。 – sqlmole

+0

你怎麼稱呼確認方法? – yokoloko

+0

onclick - 請參閱上面的編輯 – sqlmole

4

您需要將javascript事件放在窗體標記中,並使用onSubmit而不是onClick,也不需要爲此使用外部js。

<form action="url/to/form" onSubmit="return confirm('are you sure?')"> 

</form> 
0

使用笨形式助手這將是:

echo form_open('url/to/form', array('onsubmit'=>'return confirm(\'use triple escape to escape special chars like \\\'quotes\\\'. \')')); 
-1

PHP代碼:

$attributes = array('id' => 'formId','onsubmit'=>'return validate()'); 
echo form_open('controller', $attributes); 

其中驗證()是javascript函數被調用上提交。 如果它返回false,表單將不會提交。 :-)

0

我創建一個視圖助手,做一些這方面

function delete_button($id) 
{ 
    $button = form_open(current_url().'/delete'); 
    $button .= form_hidden('id', $id); 
    $button .= form_submit(array(
    'name' => 'delete', 
    'onclick' => "return confirm('are you sure you wish to delete?');" 
), 'Delete'); 
    $button .= form_close(); 
    return $button; 
} 

那麼在我看來,我會用<?= delete_button($row->id) ?>給予必要表格並提交(刪除)按鈕代碼。由於javascript confirm()方法返回一個布爾值,因此我們可以簡單地使用return該方法,因爲當用戶取消確認對話框時,它將返回false,並且自然會出現一個點擊事件,即returns false;將阻止它繼續執行表單操作。