从文本字段值控制单选按钮

时间:2010-06-04 01:44:18

标签: javascript jquery

每个人......我想在文本字段中输入“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>

我的代码出了什么问题?

3 个答案:

答案 0 :(得分:1)

我看到一些事情正在发生。

首先,为什么你有default:?这是switch语句中使用的关键字;它在if语句中无效。完全删除它。

您还有model,lastIndexOf而不是model.lastIndexOf

答案 1 :(得分: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
  }

答案 2 :(得分:0)

注意您的语言输入。它应该是text/javascript。现在你有text/jaavascript。这取决于浏览器和您的doctype,这可能会阻止您的脚本甚至执行(它不会无声地失败,甚至不会失败)。

除了已经给出的答案之外,尝试仅声明一次数组。有几种方法可以创建您追求的数据结构。使用您觉得最舒适的款式。

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>