簡體   English   中英

根據輸入文本值在Javascript中切換語句

[英]Switch Statements in Javascript based on input text value

我目前正在嘗試完成以下操作,並且對Javascript不太熟悉,因此我希望我能對以下內容獲得一些好的建議和答案,因為我之前在這里獲得了有關Javescript問題的幫助。

基本上,我有一個輸入字段,用戶將在其中輸入一個值。 輸入該值后,我想向用戶提供一些div信息,然后再將其提交給Ajax處理程序。 我還希望在輸入字段文本的每次更改時向他們提供值。 我要提交3種不同類型的數據,因此對於每種類型,我想根據用戶輸入的內容向用戶呈現不同的信息集。 為此,我使用了一個開關,但是該開關當前不起作用,如下所示。

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>

當我僅在分配給div變量的div中顯示sv.value時,它可以正確顯示,但是在引入開關時,我沒有任何輸出。 切換基於每個case語句的返回結果為true或false,但是可能缺少一些簡單的東西。

我確實看到了這一點 ,這有助於將input值正確地input到變量中,但是更多地關注if語句。

在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鏈接”。 此外,當控件失去焦點時(可能比您想要的晚),將調度change事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM