繁体   English   中英

javascript多输入textarea验证

[英]javascript multiple input textarea validation

我在表格上的TEXTAREA中有数字。 用户在TEXTAREA中输入一些值后,我需要确认它不是任何其他值的重复项。

例:

TEXTAREA_1 value =
10
20
30
40
10

它应该发出警报并说“输入了10个以上的值10”。 请帮助我使用JavaScript。

var nums = textarea.value.split('\n').sort();
var prev;
for (var i = 0; i < nums.length; i++ ) {
    if (prev && nums[i] == prev) {
        alert('value ' + prev + ' was entered more than once');
        break;
    }
    prev = nums[i];
}

纯DOM / JS解决方案:

  <form id="foo">
    <textarea id="numbers-textfield" cols=40 rows=20>10
    20
    30
    40
    50
    60
    60</textarea>
    <br>
    <input type=submit value=submit>
</form>
<script>
    (function() {
    var form = document.getElementById('foo'),
        textarea = document.getElementById('numbers-textfield'),
        inArray = function( value, arr ) {
        for ( var i = arr.length; i--; ) {
            if ( value == arr[i] ) {
            return true;
            }
        }
        return false;
        }


    form.onsubmit = function() {
        var value = textarea.value.split(/\s+/), len = value.length, stack = [], errors = false;


        for ( var i = 0; i<len; ++i ) {
        var isNum = !isNaN( value[i] );
        if ( !isNum ) { continue; }
        if ( errors ) { break; }
        if ( !inArray( value[i], stack ) ) {
            stack.push( value[i] );
        } else {
            errors = true;
            alert( value[i] + ' already in stack');
        }
        }

        if ( errors ) {
        return false;
        }

    }

    })();
</script>
$(function() {
  $("form").submit(function() {
    var txt = $("#TEXTAREA_1");
    var vals = txt.val().split("\n");
    var len = vals.length;

    for(var i = 0; i < len; i++) {
      for(var j = i + 1; j < len; j++) {
        if(vals[i] === vals[j]) {
          alert("Duplicate values are not allowed");
          txt.select();
          return false;
        }
      }
    }
  });
});

有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM