在此网页中,我动态生成多个文本框,每个文本框都旨在保存唯一的值,我想动态获取该值。但是我无法根据文本框的位置捕获文本框的值。此代码仅适用于第一个生成的文本框。我有这样的代码
<tr>
<td align="center"><input type="text" name="serialNoArray[]" id="serialArray" onChange="checkusername()" ><span id="std_id_status"></span></td>
</tr>
<script>
function checkusername() {
var s = _("serialArray").value;
if(s != "") {
_("std_id_status").innerHTML = 'checking ...';
var ajax = ajaxObj("POST", "sellingDetails.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true){
_("std_id_status").innerHTML = ajax.responseText;
}
}
ajax.send("std_id_check="+s);
}
}
</script>
最佳答案
首先,您应该使用类而不是 id,因为具有 id 的元素对于整个文档必须是唯一的。
由于您使用 onChange,您可以使用 this
传递元素,就像 onChange="checkusername(this)"
一样。
我想您还应该更改 restrict
函数 onkeyup="restrict('serialArray')"
的代码,但我没有看到该代码,所以我无法为您提供更多帮助如果您也不提供此代码...
<tr>
<td align="center"><input type="text" name="serialNoArray[]" class="serialArray" onkeyup="restrict('serialArray')" onChange="checkusername(this)" ><span class="std_id_status"></span></td>
</tr>
然后你可以只获取正在更改的元素的值,并只更改匹配范围的html。(我在示例中使用jQuery,所以你应该将它包含在你的文档中。)
<script>
function checkusername(s) {
if (s.value != "") {
$(s).nextAll('.std_id_status').first().html('checking ...');
var ajax = ajaxObj("POST", "sellingDetails.php");
ajax.onreadystatechange = function() {
if (ajaxReturn(ajax) == true) {
$(s).nextAll('.std_id_status').first().html(ajax.responseText);
}
}
ajax.send("std_id_check=" + s.value);
}
}
</script>
由于我没有你所有的 javascript 代码,我无法测试它,但类似的东西应该可以工作。
关于javascript - 如何使用 AJAX/PHP 获取具有相同 id 动态生成的文本框的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207373/