【问题标题】:Two clicks to populate form两次单击以填充表单
【发布时间】:2012-11-29 14:32:44
【问题描述】:

我知道以前有人问过这个问题,但我不是编码员(正在努力学习),所以我无法通过以前的问题找到任何看起来像我的网站编码的示例或答案。

问题: 我的表单应该填充汽车品牌,然后它会自动填充模型。 (填充品牌后,模型可以正常工作)。

但我必须在表单的初始部分上单击两次才能填充数据。

我的表单代码的顶部:

 <td><b>Make:</b><br /> <span id="makesList"><select onclick="getMakes(<?php echo SITETYPE2 ?>)" onchange="getModels(this.value, <?php echo SITETYPE2 ?>)" class="required" id="makeid" name="makeid" >

Javascript/Ajax function

function getMakes(str)
{
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null)
  {
    alert ("Your browser does not support AJAX!");
    return;
  }
  var url="/getmakes.php";
  url=url+"?typeid="+str;
  url=url+"&sid="+Math.random();
  xmlHttp.onreadystatechange=stateChangedMakes;
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

你能帮帮我吗?请记住,我不是程序员,只是想了解别人的代码。

谢谢 标记

【问题讨论】:

  • 问题是,有没有一种无需点击两次即可获取数据的方法
  • 在我看来,在下拉列表中使用事件 onClick 并不是一个好主意。这可能会遇到麻烦。

标签: php javascript ajax forms


【解决方案1】:

使用下拉菜单(选择)的最佳方法是使用 onchange。由于您已经触发了 onchange 事件,因此我将使用 mouseup ,因为它发生在单击事件之前。此外,客户端和您的 Web 服务器之间也可能存在延迟。尝试最初单击,然后单击屏幕以查看是否出现下一批结果。

您的 php echo 语句末尾也没有分号。这应该会报错

【讨论】:

  • 感谢您的建议。作为非编码人员,我理解这个概念,但没有能力将其转化为有效的代码。再次感谢。没有服务器延迟
猜你喜欢
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 2020-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多