Php 如何使用JavaScript验证动态生成的输入框
嗨,我有一个表单,它有一个ajax函数,当用户输入代码并从组合框中选择一个值时,它会附加数据。由于附加的数据具有动态行,我希望验证这些输入框,以便用户只能输入诸如01、02、03…10之类的值,如果用户尝试输入大于10的值,则应显示一个警报框。到目前为止,我有这样做的脚本,但由于name属性不断更改,验证似乎不起作用。有人能帮我吗 以下是我的JavaScript代码:Php 如何使用JavaScript验证动态生成的输入框,php,javascript,html,ajax,validation,Php,Javascript,Html,Ajax,Validation,嗨,我有一个表单,它有一个ajax函数,当用户输入代码并从组合框中选择一个值时,它会附加数据。由于附加的数据具有动态行,我希望验证这些输入框,以便用户只能输入诸如01、02、03…10之类的值,如果用户尝试输入大于10的值,则应显示一个警报框。到目前为止,我有这样做的脚本,但由于name属性不断更改,验证似乎不起作用。有人能帮我吗 以下是我的JavaScript代码: function getXMLHTTP() { //function to return the xml http object
function getXMLHTTP() { //function to return the xml http object
var xmlhttp = false;
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
xmlhttp = false;
}
}
}
return xmlhttp;
}
function getfunit2(makhcode, cmbmon) {
var strURL = "subjsele2.php?makhcode=" + document.nigran.makhcode.value + "&cmbmon=" + document.nigran.cmbmon.value;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function () {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById('suboth').innerHTML = req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("POST", strURL, true);
req.send(null);
}
}
以下是我的PHP代码:
<?php
$makhcode=$_GET["makhcode"];
$cmbmon=$_GET["cmbmon"];
$monno1 = "mon$cmbmon";
$con = mysql_connect('localhost', '****', '*****');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$scomp = mysql_query("SELECT * FROM subject WHERE compulsory !='1' ORDER BY ordby")or die(mysql_error());
if(mysql_num_rows($scomp)>0){
echo "<table>";
while($csub = mysql_fetch_assoc($scomp)){
$msubjcode = $csub["code"];
$csubqry = mysql_query("SELECT * FROM nigstat WHERE makhcode='".$makhcode."' AND subcode='".$msubjcode."'") or die(mysql_error());
$fetchmon = mysql_fetch_array($csubqry) ;
$mmonval = $fetchmon["$monno1"];
echo "<tr>";
echo "<td width='200px'><font color='#FF0033'><strong>".$csub[name]."</strong></td><td><input id='s_id' name='s_$csub[code]' type='text' onkeypress=\"return chknum()\" size='1' maxlength='2' value='$mmonval'></td><input type='hidden' name='$mmonval' size='3' maxlength='3'>";
echo "</tr>";
}
echo "</table>";
}
mysql_close($con);
?>
使用此函数验证代码
<input type="text" id="fname" onkeyup="validate_code(this)">
function validate_code(that)
{
if(isNaN(that.value)==true || that.value>10)
{
that.value='';
alert('enter a valid value');
}
return true
}
函数验证_代码(该代码)
{
如果(isNaN(that.value)==true | | that.value>10)
{
值='';
警报(“输入有效值”);
}
返回真值
}
链接到示例使用此功能验证代码
<input type="text" id="fname" onkeyup="validate_code(this)">
function validate_code(that)
{
if(isNaN(that.value)==true || that.value>10)
{
that.value='';
alert('enter a valid value');
}
return true
}
函数验证_代码(该代码)
{
如果(isNaN(that.value)==true | | that.value>10)
{
值='';
警报(“输入有效值”);
}
返回真值
}
链接到示例y是否改为使用名称id进行中继。我使用的是id,但即使在您希望验证的实际位置,该id也不起作用?服务器或客户端?你是否使用名称来代替id。我使用的是id,但实际上在你想要验证的地方,它也不起作用?服务器还是客户端?是否需要通过Id传递参数,如getelements??您希望验证的位置,我假设makhcode是您希望验证的位置。我希望验证php文件this one document中生成的输入字段。getElementById(“s_1”)。onkeyup=function(){var input=parseInt(this.value);if(input10)alert(“值应该在0-10之间”);return;}请看,我正在使用它来验证输入,但不知何故,它不起作用。那么,这段代码是否能够验证动态生成的文本框?是否需要通过Id传递诸如getelements之类的参数?您希望验证的位置是哪个,我想makhcode是您希望验证输入的位置在php文件中生成的ld。getElementById(“s_1”).onkeyup=function(){var input=parseInt(this.value);if(input10)alert(“值应介于0-10之间”);return;}看,我用它来验证输入,但不知何故它不工作,所以这段代码能够验证动态生成的文本框吗??