2014-03-03 194 views
-1

我需要通過JavaScript確認對話框進行簡單表單提交。 提交將刪除數據庫中的項目,所以我想通過打印有關要刪除的元素的信息來詢問確認消息。將參數傳遞給JavaScript函數以提交表單

形式的代碼是:

echo "<form action='manage_cycles.php' method='POST' onsubmit='return conferma($(this))' name='form_form'>"; 
    echo "<input type='hidden' name='cycle_id' value='".$cycle['cycleID']."'>"; 
    echo "<td style='width:40px;'><button type='submit' name='delete_cycle' value='".$cycle['cycleName']."' style='color:blue;font-size:12px'>Delete</button></td>"; 
echo "</form>"; 

我想要在確認對話框來打印的信息是按鈕標籤,$週期[「循環名」]的值。

JavaScript函數的代碼是:

function conferma(element){ 

    var button_value = element.find("button").attr("value"); 

    var msg = "Are you sure you want to delete " + button_value + "?"; 

    return confirm(msg); 
    } 

的確認對話框消息是:

是否確定要刪除未定義?

然後返回值正常工作,並通過單擊Y/N選項提交或不提交表單。

我不明白的地方,我錯了

+0

'return conferma(this)'而不是返回'conferma($(this))'並用'$(element)'包裝'element'使'.find()'工作! –

+0

嘗試使用return conferma(this)和包裝元素與$(元素)...不起作用(我想我試過所有組合用於傳遞參數和wrap元素) –

+0

你試過'element.find(「button」) .VAL()'? –

回答

1

試試這個 「coglione」

+1

歡迎來到Stack Overflow!雖然這可能會回答這個問題,但如果你能解釋一下如何以及爲什麼回答這個問題,那會更好。 – apaul

0

我想你想

conferma(this) 

,而不是

conferma($(this)) 
0

如果您正在使用jQuery,試試這個:

$('[name=form_form]').submit(function() { 
    var btn_val = $(this).find('button').attr('value'); 
    return confirm("Are you sure, you want to delete " + btn_val + "?"); 
}); 

and omit onsubmit - 在您的form -tag上發揮作用。

+0

我試過類似的東西(用js啓動函數按下type =「button」按鈕,否則提交),但我不知道爲什麼變量$ _POST ['delete_cycle']是沒有設置,所以我無法通過PHP控制實際從數據庫中刪除。 –

0

快到了,試試這個方法:

表單元素:

onsubmit='return conferma(this)' 

功能:

function conferma(element){ 

    var button_value = $(element).find("button").attr("value"); 

    var msg = "Are you sure you want to delete " + button_value + "?"; 

    return confirm(msg); 
    } 
0

調用此方法

function conferma(){ 

    var button_value = $("button[name='delete_cycle']").val(); 
    return confirm("Are you sure you want to delete " + button_value + "?"); 

}