1

我试图允许用户在输入字段中输入多个用逗号分隔的 id #。<li>然后我想接受该输入,在提交之前用逗号分隔数据并将它们插入单独的标签以显示在另一个 div 中(用于验证目的)。这是我到目前为止所拥有的……请保持温和……我以前不必这样做。

if ($("#" + prodID).find("input.text").val() == value) {
   $("#" + prodID).find("input.text").val("");
}

这是我到目前为止的地方,不知道从那里去哪里。我相信我需要添加replaceWith()到末尾,.val("");但不确定。如果有示例我可以查看,我相信我可以解决这个问题。

非常感谢任何帮助。

这是HTML。(对不起,我一开始错过了)

<div id="selCodes">
<p>Your selected codes <span><a href="#">Clear</a></span></p>
  <ul>
      <li><!--inserted by clicking "okay"-->
          Some Account - 0123<a href="#" title="delete"><img alt="delete" src="imgs/delete.png"></a>
      </li>
  </ul>
  <button id="subCodes">Submit</button>
</div><!-- /#my-selections -->

<h4>Narrow results by</h4>

<div id="prodId">
  <a href="#">Item code</a>
    <span><a href="#">Clear</a></span>        
    <p>Choose item from dropdown. Type code or codes, (separated by comma), and click the add button to create filters.</p>
        <select id="code-type">
            <option>Prod code</option>
            <option selected="selected">Prod UPC</option>
            <option>Master UPC</option>
            <option>CC</option>
        </select>            
        <input type="text" value="" />  
        <button>OK</button>
</div>

我有一种有趣的感觉,我离基地很远。

4

5 回答 5

2

这是演示

这是代码:

$('#separate').on('keyup',function(){
   var splitter = $('#separate').val().split(',');  
   var htmlToAdd='';
   for (i=0; i<splitter.length; i++)
   {
       htmlToAdd += '<li>'+splitter[i]+'</li>';
   }
   $('#results').html(htmlToAdd);
});​

我在我的演示中使用了你的 html,稍作修改,在输入框中添加了一个 id,并在底部添加了一个验证结果 div。

于 2012-06-15T15:13:02.427 回答
0

您可以使用属性匹配而[value=somevalue]
不是写这个

if ($("#" + prodID).find("input.text").val() == value) {
    $("#" + prodID).find("input.text").val("");
}

$("#" + proID + " input:text[value="+value+"]").val('');

在此处查看示例

于 2012-06-15T14:43:52.733 回答
0

这假设您想在输入值更改时随时更新,并且您的验证ul的 id 为verify

$('#'+prodId).find('input:text').change(function(e){
   var $this = $(this),
       value = $this.val(),
       values,
       $verify = $('ul#verify'),
       verifyHTML = '';
   if(value) {
       if (value.indexOf(',') != -1) {
         values = value.split(',');
       } else {
         values = [value];
       }

       for (var i = 0; i < values.length; i++) {
         verifyHTML += '<li>'+values[i]+'</li>';
       }

       $verify.html(verifyHTML);
   }
});
于 2012-06-15T14:44:28.997 回答
0

我从问题中的文本中假设您的意思是这样的(这里没有检查仅显示值-我可能与您的要求相去甚远)->

$(function() {
    $('input[type=button]').click(function() {
        var inputs_to_check = $('#check').val();
        var array_to_check = inputs_to_check.split(',');
        $.each(array_to_check,function(index,value) {
            $('#output').append('<li>' + value + " = " + $('#'+value).val() + "</li>");
        })
    });
});​

这从input( ) 中获取一些文本 - 其中包含要检查的s元素#check的逗号分隔列表。然后它拆分值并在它们上循环(),然后创建包含检查的元素及其()idinput$.each()liidinputvalue.val()

HTML 看起来像这样:

inputs :<br>
<input id="test1" value="1234"/><br>
<input id="test2" value="5678"/><br>
Output to check : <input id="check"/> <input type="button" value="check"/>
<div>
    <ul id="output"></ul>
</div>​

这里的工作示例

于 2012-06-15T14:44:43.323 回答
0

不确定这是否是您的意思:

演示

html:

<input id="input1" />
<ul id="ul1"></ul>​

jQuery:

$('#input1').on('keyup', function() {
    var textIn = $(this).val();
    var idArr = textIn.split(',');
    $('li', '#ul1').remove();
    $.each(idArr, function(i) {
        $('#ul1').append('<li>' + idArr[i] + '</li>');
    });
});​
于 2012-06-15T14:55:09.487 回答