[英]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.