2013-01-07 52 views
0

我有一個HTML表格,其中有表示數據庫記錄的行。最後一列的單元格有一個帶有用於刪除數據庫記錄的提交按鈕的表單。表單具有唯一的ID,但其中的字段只有名稱,並且這些名稱對於每個表單都是相同的。故障維護表單提交

我有一個簡單的用戶確認,但我想確保表單不會因Javascript未運行(錯誤或其他)而提交。所以我認爲我會將其中一個隱藏字段的值留空並在提交時填寫它(處理腳本需要一個字段,但無論選擇哪個記錄都是相同的值,因此很容易分派)。這裏是我的嘗試:

$(document).ready(function() { 
    $("form[id^='deltrans']").submit(function(e) { 
    if (confirm("Are you sure you want to delete this transaction?")) { 
     $(this).find("[name='uri']").val("my value..."); 
    } else { 
     e.preventDefault(); 
    } 
    }); 
}); 

但使用$(本).find()似乎並沒有工作 - 螢火蟲說$(本).find( 「[NAME = 'URI']」)。 val()未定義。如果存在JS問題,您是否能夠看到我的錯誤或者有更好,更簡單的建議來防止意外表單提交?

編輯:每註釋中的要求,這裏是培訓相關HTML:

<form method="post" id="deltrans<? echo $row->TransID; ?>" action="processor.php"> 
    <td class="button-in-table"> 
    <input type="hidden" name="tid" value="<? echo $row->TransID; ?>"> 
    <input type="hidden" name="uri" value=""> 
    <input type="submit" name="deltrans" value="Del"> 
    </td> 
</form> 
+0

「.filter()」的工作效果比'.find()'? – Sparky

+0

請給我們顯示html – Adil

+0

請顯示HTML。您的表單中不能有名爲「uri」的DOM元素。 '$(this)'應該給你'

'標籤。 – lifo

回答

0

如果uri輸入是裏面的表不能使用:

$(this).children('[name^=uri]').val("my value...");

在它的全部內容:

$(document).ready(function() { 
    $("form[id^='deltrans']").submit(function(e) { 
    if (confirm("Are you sure you want to delete this transaction?")) { 
     $(this).children('[name^=uri]').val("my value..."); 
    } else { 
     e.preventDefault(); 
    } 
    }); 
}); 
+0

孩子()是我第一次嘗試的,但後來我意識到它實際上是一個孫子,所以我改爲find()。 – OsakaWebbie

+0

啊。是的,我現在看到你的更新代碼。 –