从文本框

时间:2015-08-11 16:04:07

标签: javascript html textbox user-input

我正在尝试从用户输入中收集数据,特别是文本框和下拉选项,并生成用户输出。任何帮助将不胜感激。

javascript应该收集第一个文本框中的值,将其转换为小写,然后查看它是否是正确的答案。如果是,则应检查用户是否想要关于他们所作用的电影的其他信息(“是”),或者不是(“否”)。数据库中的演员代码应显示在第一段中,而演员所在的电影列表应显示在第二段中。每部电影都显示在一个单独的行上。

function gather()
{
  var name = document.getElementById("name").value;
  return name.toLowerCase();
  var info = document.getElementById("info").value;
  return info.toLowerCase();
  var code = document.getElementById("code").value;
  var titles = document.getElementById("titles").value;
  if (name = "patrick swayzee")
  {
    code = "Patrick Swayzee's code is ps01";
    if (info = "yes")
    {
      titles = "Film 1" + \n + "Film 2";
    }
    else
    {
      titles = "";
    }
  }
  else
  {
    code = "Request does not exist. Please enter another actor/actress's name."
  }
}
<html>

  <head>

    <title>Actor/Actress Database</title>
    <script src="act_req.js" type="text/javascript">
    </script>

  </head>

  <body>

    <table>
      <tr>
        <td><b>Name:</b></td>
        <td><b>Info:</b></td>
        <td></td>
      </tr><tr>
      <td><input type="text" id="name="></input></td>
    <td>
      <select id="info">
        <option value="No">No</option>
        <option value="Yes">Yes</option>
      </select>
    </td>
    <td><button onclick="gather()">Search</button></td>
    </tr>
  </table>
<p id="code"></p>
<p id="titles"></p>

</body>

</html>

3 个答案:

答案 0 :(得分:1)

你在条件中缺少额外的=:

if (info == "yes")

事实上,你应该使用===所以jshint不会抱怨它。

答案 1 :(得分:1)

就在这里,我在代码中找到的所有内容都会完全失败,这会阻止它正常工作(因为我有点无聊):

1)

return name.toLowerCase();
return info.toLowerCase();

这不是return的工作原理。如果要将值放入小写,可以执行以下操作:

var name = document.getElementById("name").value.toLowerCase();

2)

var code = document.getElementById("code").value;

在这里,您尝试分配&#34;代码&#34;的值。变量。这个问题是您尝试稍后在代码中设置该变量的值。你打算做的只是在该变量中捕获元素

var code = document.getElementById("code");

对于var titles行btw来说,这是相同的。

3)

if (name = "patrick swayzee")

在此分配为某个名称命名。你想使用===(严格的平等是最好的)。

同样适用于if (info

4)

code = "Patrick Swayzee's code is ps01";

在尝试为元素分配内容时(参见2),您现在应该将其分配给该元素的属性。 IE9 +和最近的浏览器使用textContent,因此该行应为:

code.textContent = "Patrick Swayzee's code is ps01";

在所有其他地方也是如此。

5)

<td><input type="text" id="name=">

应该是

<td><input type="text" id="name">

注意区别?一个拼写错误可能会破坏你的代码。

我可能错过了一两件事,但这里some working code - look it over。其他的回答者可能会抓住其余的。祝你的节目好运。

答案 2 :(得分:0)

  1. 给按钮一个类型,或者它会在某些浏览器中提交 <button type="button"
  2. 返回后不再执行任何代码
  3. 你在id =“name =”
  4. 中有一个尾随=
  5. 您已分配(=)而非测试等式(==或===)
  6. 代码和标题是标签,而不是字段。标签没有价值
  7. 你可能意味着

    window.onload=function() {
      document.getElementById("gather").onclick=function() {
        var name = document.getElementById("name").value.toLowerCase();
        var info = document.getElementById("info").value.toLowerCase();
        var code = document.getElementById("code");
        var titles = document.getElementById("titles");
        var codeString = "", titleString="";
        if (name == "patrick swayzee") {
          codeString = "Patrick Swayzee's code is ps01";
          titleString = (info == "yes")?"Film 1\nFilm 2":"";
        } else {
          codeString = "Request does not exist. Please enter another actor/actress's name."
        }
        code.innerHTML=codeString;
        titles.innerHTML=titleString;
      }
    }
    <table>
      <tr>
        <td><b>Name:</b></td>
        <td><b>Info:</b></td>
        <td></td>
      </tr>
      <tr>
        <td>
          <input type="text" id="name" value=""/></td>
        <td>
          <select id="info">
            <option value="No">No</option>
            <option value="Yes">Yes</option>
          </select>
        </td>
        <td>
          <button type="button" id="gather" >Search</button>
        </td>
      </tr>
    </table>
    <p id="code"></p>
    <p id="titles"></p>