如何使用javascript、php在下拉列表上设置焦点
我无法将焦点设置到我的php页面dc-test.php(这是一个框架页面:topFrame和botFrame)下拉列表,该下拉列表有2个下拉列表并且是相关的。 这些下拉列表值是从表中填充的。 无法为第一个下拉列表设置焦点,在重新加载第二个相关下拉列表后设置焦点。请参阅下面的代码,需要您的帮助!对不起,如果我在这个论坛上重复这个问题,因为我找不到正确的答案如何使用javascript、php在下拉列表上设置焦点,php,javascript,focus,drop-down-menu,set,Php,Javascript,Focus,Drop Down Menu,Set,我无法将焦点设置到我的php页面dc-test.php(这是一个框架页面:topFrame和botFrame)下拉列表,该下拉列表有2个下拉列表并且是相关的。 这些下拉列表值是从表中填充的。 无法为第一个下拉列表设置焦点,在重新加载第二个相关下拉列表后设置焦点。请参阅下面的代码,需要您的帮助!对不起,如果我在这个论坛上重复这个问题,因为我找不到正确的答案 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<SCRIPT language=JavaScript>
function reload(form)
{
var val=form.cat.options[form.cat.options.selectedIndex].value;
self.location='dc-test.php?cat=' + val ;
}
function firstfield()
{
document.topFrame.cat.focus();
}
</script>
</head>
<body onLoad="firstfield();">
<?php
$dbservertype='mysql';
$servername='localhost';
$dbusername='aaa';
$dbpassword='234!@';
$dbname='test';
connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
}
// End of DB connection
@$cat=$_GET['cat'];
if(strlen($cat) > 0 and !is_numeric($cat)){
echo "Data Error";
exit;
}
$quer2=mysql_query("SELECT DISTINCT Ac_desc, Ac_code FROM ACMAST order by Ac_desc");
/////// Second drop down list we will check if category is selected else we will display all the subcategory/////
if(isset($cat) and strlen($cat) > 0){
$quer=mysql_query("SELECT DISTINCT Add1 FROM ACMAST where Ac_code=$cat order by Add1");
}
echo "<form name='f1'>";
echo "<table width='100%' height='39' border='0' cellpadding='2' cellspacing='0'>";
echo " <tr>";
echo " <td width='12%'>.</td>";
echo " <td width='7%'><span class='sty1'> Customer</span></td>";
echo " <td width='27%'><select name='cat' onchange=\"reload(this.form); showUser(this.value);\">
<option value=''>Select Name</option>";
while($noticia2 = mysql_fetch_array($quer2)) {
if($noticia2['Ac_code']==@$cat){echo "<option selected value='$noticia2[Ac_code]'>$noticia2[Ac_desc]</option>"."<BR>";}
else{echo "<option value='$noticia2[Ac_code]'>$noticia2[Ac_desc]</option>";}
}
echo "</select>";
echo "</td>";
echo " <td width='6%'><span class='sty1'>Address</span></td>";
echo " <td width='48%'> </span><select name='subcat'>";
while($noticia = mysql_fetch_array($quer)) {
echo "<option value='$noticia[Add1]'>$noticia[Add1]</option>";
}
echo "</select>";
echo "</td>";
echo " </tr>";
echo "</table>";
?>
</body>
</html>
函数重载(表单)
{
var val=form.cat.options[form.cat.options.selectedIndex].value;
self.location='dc-test.php?cat='+val;
}
函数firstfield()
{
document.topFrame.cat.focus();
}
“顶框”在此处完全超出范围:
function firstfield()
{
document.topFrame.cat.focus();
}
改为这样做:
为表单字段指定一个id:
echo " <td width='27%'><select name='cat' id='cat' onchange=\"reload(this.form); showUser(this.value);\">
另外,还有一点与此无关:让您的生活更轻松,并开始使用jQuery.:) 只是好奇为什么你有两种医生类型?真的没有得到你想要的。关注两个下拉列表?只能聚焦一个元素。问题是什么?你想要实现什么?我想要的很简单。第一次显示2个下拉列表时,必须为第一个下拉列表设置焦点,当在第一个下拉列表中选择一个项目时,重新加载页面,并在第二个下拉列表中填充一个值,需要为此设置焦点。是否有人可以帮我解决此问题,请回复!Eric,即使这样也不行,我使用的是firefox 9.01,这是浏览器的问题吗,顺便问一下,我们如何使用jQuery实现同样的功能?你能举个例子吗?我已经将焦点设置为表单,而不是表单字段。这在上面的答案中得到了修正,我已经验证了它的有效性。至于jQuery,我只想看看。Eric,这很好用,谢谢!我还尝试了jquery,这是一个更好的选择,具有很好的控制能力,非常感谢。
function firstfield()
{
document.getElementById('cat').focus();
}