2013-12-08 67 views
0

美好的一天!指定特定隱藏字段的值javascript/jquery

如何在使用JavaScript或jQuery的行中的隱藏字段上添加值?

繼承人我JS:

,但上面的代碼修改與我的表類deleteId的所有隱藏的領域,我的問題是我如何可以改變特定行,我點擊的隱藏字段值刪除按鈕?我的表格結構是這樣的:

<table> 
<tr> 
    <td>itemName</td> 
    <td>itemPrice<input type="hidden" id="deleteId" /><td> 
    <td><a href="#">remove</a></td> 
<tr> 
</table> 

並且通過wat它的一個外部js文件。

非常感謝您的時間!

回答

4

您可以在輸入中使用id="deletedId"。但是一個id對於頁面應該是唯一的,所以在你的情況下使用類「標識符」可能更合適。

的jsfiddle:http://jsfiddle.net/B9De7/

$(function(){ 
    $('a').on('click', function(){ 
     removeRow(this); 
    }); 
}); 

function removeRow(anchorElementClicked){ 
    var row = $(anchorElementClicked).closest('tr'); 
    row.find('input.hidden-deleted-id').val("yes"); 
    row.hide(); 
    //no need to return false or stop eventPropagation 
} 

<table> 
    <tr> 
     <td>itemName</td> 
     <td>itemPrice<input type="hidden" class="hidden-deleted-id" /><td> 
     <td><a href="#">remove</a></td> 
    <tr> 
</table> 
+0

最後它的工作!非常感謝@布里安奧格登!我已經嘗試過使用查找,但我不知道,我不能讓它工作xD!但隨着你的代碼,它終於奏效了!祝你有美好的一天! – melvnberd

+0

這是因爲你的代碼中的removeRow函數中的「this」並不是你認爲的那樣。 「this」是代碼中的JavaScript窗口對象。這就是爲什麼我通過「這個」來移除行。 jQuery非常好,可以將「this」設置爲被單擊的元素,在這種情況下,這是一個,但這會在removeRow被調用的時候更改,這就是爲什麼我通過「this」來移除行,所以你點擊了 。使用傳遞給removeRow的參數,closet和find將在removeRow中按預期工作。我更新了我的答案,並將參數從「td」重命名爲「anchorElementClicked」。 –

1

你的代碼是不是做你想做的,因爲它是不正確, 試試這個:

<table> 
<tr> 
    <td>itemName</td> 
    <td>itemPrice<td> 
    <td><a class='removeRow' id='element-id'>remove</a></td> 
<tr> 
</table> 

$(".removeRow").click(function(e) { 
    $.post("page.php", { id: $(this).attr("id") }) 
    // if you want the answer from the php page, ex to tell user if the remotion succeeded or not 
    .done(function(data) { 
     $(this).parent().parent().hide(); 
     // for example, "data" could be yes/not 
     alert("Removed: "+data); 
    }); 
    e.preventDefault(); 
}); 

// PHP PAGE 
<?php 
//DB Connection stuff 
$_POST['id'] is what you get, then you have to 
echo "yes/not" depending on the esit of the query. 
that echo is sent back to ajax request. 

應該*隱藏包含元素中的用戶點擊。 e.preventDefault()爲了不使頁面重新加載。

編輯:現在它應該設置您輸入標記值爲「是」並隱藏第th行。 爲什麼在用戶點擊「刪除」時不使用ajax查詢數據庫? 如果你想我可以寫你的代碼。

+0

感謝您的評論@alberto zannatta!但我試圖隱藏這一行,以便我可以通過隱藏字段的值在一個帖子中的值是「是」,然後我可以刪除數據庫上的行:) – melvnberd

+1

我編輯了答案 – Alberto

+1

我想我現在可以解決非Ajax問題,我認爲不使用AJAX更合適,這樣我就可以讓用戶在更新表單之前完成他所做的工作。但我並不那麼確定!無論如何非常感謝你的時間和幫助的意願。祝你有美好的一天! – melvnberd