2010-06-04 53 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

相关问题