2011-01-20 111 views
0

我不確定這是更多的CodeIgniter問題或Javascript問題。Javascript確認和CodeIgniter

這裏是我的javascript:

<script type="text/javascript"> 
function con(message) { 
var answer = confirm(message); 
if (answer) { 
    return true; 
} 

return false; 
} 
</script> 

這裏是我的CI:

echo form_submit('submit', 'Login', 'onclick="return con("Are you sure you don\'t have a configuration to submit? Please check the checkbox if you do.")'); 

爲什麼我沒有得到一個確認對話框? JS在我看來。 CI正確呈現提交按鈕。

回答

4

您需要在JS使用單引號:

    // this double quote is causing issues with the onclick assignment. 
onclick="return con("Are you sure you don\'t have a configuration to submit? Please check the checkbox if you do.")' 

你甚至可以看到顏色從語法突出問題,使

我建議:

onclick="return con(\'Are you sure you don\\'t have a configuration to submit? Please check the checkbox if you do.\')"' 
0

是不是你的代碼進入無限循環?

您已經重新定義了confirm() JS函數,並且您正在循環執行您。

+0

我改名爲「騙子」,在這兩個地方,我仍然沒有得到對話框。 – sehummel 2011-01-20 16:51:45

1

此代碼將進入無限循環,因爲您將函數confirm命名爲與構建在JavaScript confirm中相同。

因此,在您的confirm函數中,當它調用confirm時,它將調用您的函數,而不是本機函數。

原生JavaScript confirm函數返回true或false,所以不需要您的方法。

編輯:問題是當你調用form_submit。

變化:

'onclick="return con("Are you sure you don\'t have a configuration to submit? Please check the checkbox if you do.")' 

要:

'onclick="return con(\'Are you sure you don\\\'t have a configuration to submit? Please check the checkbox if you do.\')"' 
+0

這不是問題所在。我重命名了這個函數,但它仍然不起作用。 – sehummel 2011-01-20 16:53:17

+0

新的解決方案沒有解決問題。我複製了你的代碼,我仍然沒有對話框。 – sehummel 2011-01-20 17:09:47

+0

@ shummel7845:問題是你需要確保你的引號被正確地轉義,我需要確保我知道有多少''要投入。 – 2011-01-20 17:12:23