从名称[JS]获取特定表单的表单输入

时间:2014-06-23 14:09:45

标签: javascript jquery forms

我有一个来自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; 

1 个答案:

答案 0 :(得分:1)

由于您的表单具有name属性,因此您可以使用document.formName使用javascript访问特定表单。在你的情况下,document.21应该可行。