根据输入文本值在Javascript中切换语句

时间:2013-12-27 21:20:11

标签: javascript html

我正在努力完成以下目标,并且对Javascript不太熟悉所以我希望我能得到一些好的建议和答案,因为我已经得到了{{1}的大力帮助之前的问题。

基本上我有一个输入字段,用户将输入一个值。输入该值后,我希望在将值提交给Ajax处理程序之前,在div中为用户提供一些信息。我还想在输入字段文本的每次更改时向他们显示值。我提交了3种不同类型的数据,因此对于每种类型,我希望根据输入包含的内容向用户显示不同的信息集。为此我使用了一个开关,但是开关当前没有工作,如下图所示。

Javescript

当我只在分配给div变量的div中显示sv.value时,它会正确显示,但是当引入开关时,我没有得到任何输出。该开关基于每个function createLinks() { var sv = document.getElementById('sv').value // Input Text var div = document.getElementById('svResult'); switch (true) { case (sv.indexOf('1') >= 0): div.innerHTML="1 Links: "; break; case (sv.indexOf('2') >= 0): div.innerHTML="2 Links: "; break; case (sv.indexOf('3') >= 0): div.innerHTML="3 Links: "; break; } //div.innerHTML=sv.value; } <div> <form> <label for="sv">Server:</label> <input type="text" id="sv" size="16" title="Coming Soon" onchange="createLinks()"/> <input type="submit" style="margin-left: 10px;" value="Search" class="button1"/> </form> <div id="svResult"></div> </div> 语句的返回是真还是假,但可能有一些我想要的简单。

我确实看到this有助于将case值正确地输入变量,但更多地关注input语句。

1 个答案:

答案 0 :(得分:0)

在HTML中,不需要ID属性,表单控件必须具有成功的名称。您还可以从侦听器传递对该元素的引用:

<input type="text" name="sv" size="16" title="Coming Soon" onchange="createLinks(this)">

然后脚本可以是:

function createLinks(el) {
  var value = el.value;
  var div = document.getElementById('svResult');

  if (value.indexOf('1') != -1) {
    div.innerHTML = '1 Link';

  } else if (value.indexOf('2') != -1) {
    div.innerHTML = '2 Links';

  } else if (value.indexOf('3') != -1) {
    div.innerHTML = '3 Links';
  }

  } else {
    div.innerHTML = '';
  }
}

以上将在第一场比赛时返回,因此输入'123'将报告“1 link”。此外,当控件失去焦点时,将调度change事件,这可能比您想要的更晚。