【问题标题】:why onchange event taking me to new page?为什么 onchange 事件将我带到新页面?
【发布时间】:2014-02-25 15:52:58
【问题描述】:

我正在尝试使用选择字段的值填充文本字段。 因此,根据选择文本字段应该改变。 在这种情况下,我选择了此人的名字和姓氏,并在

option value="I have person email here"

现在,我在调用 findemail() 函数的 select 元素上使用 onchange 事件。 问题是我收到了正确的电子邮件,但是 它将我重定向到另一个页面并显示那里的值。

谁能帮帮我。

代码

    function findemail(e)
{
    document.getElementById('man-email-add').innerHTML=document.write(e.value);
}

HTML(我正在使用 php 获取所有值)

<select id="manager_detail" onchange="findemail(this.options[this.selectedIndex]);">            


<?php 

    foreach ($data['display']['userMangers'] as $manager){
      echo   $manEmail = $manager['Email'];
      echo "<option value='$manEmail'>".$manager['First_Name'].' '.$manager['Last_Name'].'  ('.$manager['Position'].')'.'</option>';
}

?>


                              </select>    


Redirect to new page to show the value:

【问题讨论】:

  • 你在哪里学的.innerHTML=document.write(e.value);
  • document.write 不像 php 中的 echo 吗?像打印屏幕的东西。对不起,我是 JS 新手

标签: javascript php jquery javascript-events


【解决方案1】:

这是因为您在页面加载后使用document.write(),无论如何这里看起来都没有必要:

document.getElementById('man-email-add').innerHTML= e.value;

【讨论】:

  • 如果我使用这个 document.getElementById('man-email-add').innerHTML= e.value;它也没有填充该字段,man-email-add 字段。
  • 你确定你有一个id为man-email-add的元素吗?你调试过e.value的值吗?
  • 出于某种原因,它不允许我填充该字段。它说网络表单被禁用了一些东西。那么您能告诉我如何将值分配给输入 man-email-add 的值字段吗?是的,我调试了,值显示在控制台中,但在页面输入框中。
  • man-email-add 是输入吗?然后你会分配它的value,而不是它的innerHTMLdocument.getElementById('man-email-add').value = e.value;
  • 好吧,当你想改变一个元素的 html 时。 input 元素不能有后代,所以你不能更改它们的 html。另一方面,divs、ps、as(例如)都可以在其中包含 html。
【解决方案2】:

它是重定向到新页面还是重新加载显示电子邮件的同一页面?我相信它正在做后者,因为document.write(e.value); 将该值写入页面。所以把document.write(e.value);换成e.value;

如果man-email-add 是输入字段,请使用document.getElementById('man-email-add').value=e.value;

【讨论】:

  • 在同一页面重新加载
  • @Jason P 引导我完成。感谢您调查它。
猜你喜欢
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 2012-06-08
  • 2020-02-14
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多