2010-06-04 68 views
1

everyone..i想要我在文本框中輸入「0203-ED」後...該文本後面的兩個字符可以控制單選按鈕..該文本中的「ED」字符可以使一個單選按鈕其中有值=「ED」檢查...控制從文本框中的單選按鈕值

這是我的代碼:

<script type="text/javascript"> 
     var model=$("#tags1").val(); 
     var version[0,0]="JD"; 
     var version[0,1]="87.5-107.9"; 
     var version[1,0]="ED"; 
     var version[1,1]="87.5-108.0"; 
     var version[2,0]="EED"; 
     var version[2,1]="65.0-74.0"; 

    // each version 
     for (var i = 0; i < version.length; i ++) { 
      if (model.lastIndexOf(version[i,0])!=-1) { 
       $("#value").replaceWith("<div id='value'>"+version[i,1]+"</div>"); 
      } else { 
       $("#value").replaceWith("<div id='value'></div>") 
      } 
     // end each 
     } 
    </script> 

有什麼錯我的代碼?

回答

0

注意你的語言輸入。它應該是text/javascript。現在你有text/jaavascript。根據瀏覽器和文檔類型的不同,這可能會阻止腳本甚至執行(它不會僅僅失敗失敗,甚至不會失敗)。

除了已經給出的答案,嘗試聲明你的數組只有一次。有幾種方法可以創建您之後的數據結構。使用你覺得最舒服的任何一種風格。

var version = [['JD',"87.5-107.9"],["ED","87.5-108.0"],["EED","65.0-74.0"]]; 

var version = []; 
version[0] = ["JD","87.5-107.9"] 
version[1] = ["ED","87.5-108.0"]; 
version[2] = ["EED","65.0-74.0"]; 

var version = []; 
version[0] = []; 
version[0,0]="JD"; 
version[0,1]="87.5-107.9"; 
version[1] = []; 
version[1,0]="ED"; 
version[1,1]="87.5-108.0"; 
version[2] = []; 
version[2,0]="EED"; 
version[2,1]="65.0-74.0"; 

關於第三個版本,雖然我實際上不確定你的數組符號(版本[0,1])是否被普遍支持。我認爲在十多年以前我沒有見過任何人使用這種符號。通常,您使用符號:myArray[x][y]訪問多維數組的成員。但也許這只是一種風格差異。我不確定。

[編輯]你是否想要做這樣的事情?這不是非常有效,但它可能是你的起點。在這種情況下,jQuery絕對是你的朋友。

<input type="radio" name="version" value="87.5-107.9" /><label class="version">JD</label><br /> 
<input type="radio" name="version" value="87.5-108.0" /><label class="version">ED</label><br /> 
<input type="radio" name="version" value="65.0-74.0" /><label class="version">EED</label><br /> 
<input type="text" name="version_text" value="Enter your value" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript">//<![[ 
var jVersionTextInput = $('input[name=version_text]'); 
var jLabels = $('label.version'); 
var jRadioButtons = $('input[name=version]'); 
var intVersionCount = jLabels.size(); 
var updateRadioButtons = function() { 
    var rxLabelValue; 
    var isValueFound = false; 
    rxLabelValue = new RegExp($(jVersionTextInput).val()); 
    for (var i = 0; i < intVersionCount; i++) { 
     if (!isValueFound && rxLabelValue.test($(jLabels[i]).html())) { 
      jRadioButtons[i].checked = true; 
      isValueFound = true; 
     } 
     else { 
      jRadioButtons[i].checked = false; 
     } 
    } 
} 
jVersionTextInput.keyup(updateRadioButtons); 
//]]></script> 
+0

這是怎麼回事? var buttons = []; //將單選按鈕存儲在數組按鈕中//將onKeyUp()分配給文本輸入函數的onkeyup屬性onKeyUp(){var input = document.getElementById(「txtInput_id」); var text = input.value; if(text.length <2)return; text = text.substring(text.length - 3); for(var i = 0; i klox 2010-06-04 03:08:28

+0

這可以工作。我想你會想通過所有的按鈕,並取消除了第一次有效比賽以外的所有按鈕。您也可以使用正則表達式更靈活地檢查有效匹配。 – Andrew 2010-06-04 03:54:32

+0

你可以使用正則表達式推薦你的代碼?因爲我從來沒有使用過它.. – klox 2010-06-04 04:24:38

1

我看到一些事情正在進行。

首先,你爲什麼在那裏有default:?這是switch聲明中使用的關鍵字;它在if聲明中無效。完全刪除它。

此外,還可以代替model,lastIndexOfmodel.lastIndexOf

+0

好用的逗號+1 – alex 2010-06-04 01:53:48

+0

我已經改變逗號點...但仍然沒有工作..我該怎麼辦我的代碼? – klox 2010-06-04 01:55:49

+0

var buttons = []; //將單選按鈕存儲在數組按鈕中 //將onKeyUp()分配給文本輸入的「onkeyup」屬性 function onKeyUp() {0}輸入= document.getElementById(「txtInput_id」); var text = input.value; if(text.length <2) return; text = text.substring(text.length - 3); for(var i = 0; i klox 2010-06-04 02:27:32

1

你不必使用.replaceWith()...

for (var i = 0; i < version.length; i ++) { 
     if (model.lastIndexOf(version[i,0])!=-1) { 
      $("#value").html(version[i,1]); 
     } else { 
     //default 
      $("#value").html(""); 
     } 
    // end each 
    } 
+0

這個怎麼樣? var buttons = []; //將單選按鈕存儲在數組按鈕中 //將onKeyUp()分配給文本輸入的「onkeyup」屬性 function onKeyUp() {0}輸入= document.getElementById(「txtInput_id」); var text = input.value; if(text.length <2) return; text = text.substring(text.length - 3); for(var i = 0; i klox 2010-06-04 02:24:06

相關問題