我有一个来自PHP构建,并且jQuery和ajax检索到当前页面。现在的问题是所有输入元素都具有相同的名称和Id。表格确实有唯一的ID。如何指向具有重复项的输入ID的唯一形式?
我需要的只是document.FormId.inputID.value()
因此,我可以从特定表单获取数据,因为输入本身共享Ids
以下是PHP使用的代码:
while ($row = mysqli_fetch_array($result)) {
$Output .=
"<tr>".
'<form name="'.$row['EmailID'] .'" action="" method="post">'.
"<td>" .
'<input name="Email" type="email" id = "Email" value="'.$row['Email'].'">' ."</td>"."<td>".
'<input name="FName" type="text" id = "FName" value="' . $row['FName'] .
'">' .
"</td>"."<td>" .
<input name="LName" type="text" id = "LName" value="' . $row['LName'] .
'">' . "</td>".
//this hidden value passes the Email ID with the form
'<input id="EmailID" type="hidden" value="' . $row['EmailID'] . '" name="EmailID">'.
"<td>" .
'<input type="button" class="button" name = "Edit" id="Action" value = "Edit" onclick="validateInput('.$row['EmailID'].') />'
. "</td>".
"<td>"
. '<input type="button" class="button" name = "Delete" id="Action" value="Delete"
onclick="validateInput('.$row['EmailID'].');" />'. "</td>".
"</form>".
"</tr>";
}
echo $Output;
这是一个它产生的表格:
<tr>
<form name="21" action="" method="post"> <td><input name="Email" type="email" id="Email" value="samesc@yahoo.com"></td>
<td><input name="FName" type="text" d="FName" value=""></td>
<td><input name="LName" type="text" id="LName" value=""></td>
<input id="EmailID" type="hidden" value="21" name="EmailID">
<td><input type="button" class="button"
name="Edit" id="Action" value="Edit" onclick="validateInput(21) /></td>
<td><input type=" button"=""></td>
</form>
</tr>
现在这里是旧的JS,它会提取值,然后通过ajax使用它们。 现在这已经破裂而且无法正常工作,但你可以看到 的工作原理。
function validateInput(RowId) {
$(function() {
$('.Action').click(function(event) {
alert('Button ' + String(event.target.value) + ' was clicked!');
});
});
var Action = document.getElementById("Action").value;
alert(Action);
if(Action == 'Delete'){
var EmailID = document.getElementById("EmailID").value;
var Email = document.getElementById("Email").value;
alert("'Action == 'Delete'" + EmailID);
$.ajax({
url: "ProEmail.php",
data: { Action: Action, EmailID: EmailID, Email:Email },
type: "POST",
success : function (data) {
LoadTables();
}
});
return null;
}
var Fname = document.getElementById("FName").value;
var Lname = document.getElementById("LName").value;
答案 0 :(得分:1)
由于您的表单具有name属性,因此您可以使用document.formName使用javascript访问特定表单。在你的情况下,document.21应该可行。