양식의 TEXTAREA에 'n'숫자가 있습니다. 사용자가 TEXTAREA에 값을 입력 한 후에 다른 값의 중복이 아닌지 확인해야합니다.자바 스크립트 다중 입력 텍스트 영역 유효성 확인
예 :
TEXTAREA_1 value =
10
20
30
40
10
그것은 경고하고 말을해야 '값을 10 번 이상 입력했습니다'. 자바 스크립트를 도와주세요.
양식의 TEXTAREA에 'n'숫자가 있습니다. 사용자가 TEXTAREA에 값을 입력 한 후에 다른 값의 중복이 아닌지 확인해야합니다.자바 스크립트 다중 입력 텍스트 영역 유효성 확인
예 :
TEXTAREA_1 value =
10
20
30
40
10
그것은 경고하고 말을해야 '값을 10 번 이상 입력했습니다'. 자바 스크립트를 도와주세요.
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>
@anon : 왜 downvote? jQuery 때문에? –
나는이 작업의 해결책이 아니기 때문에, downvote라고 생각한다. – Anatoliy
정확합니다. 이것은 작동하지 않습니다! 그처럼 간단합니다. –
$(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;
}
}
}
});
});
하이 조쉬, 답변 해 주셔서 감사합니다. 아나톨리의 답변을드립니다. 대단히 감사합니다 ... – Firdi
당신을 환영합니다! 나는 실제로 이것을하기 전에해야만했다. 이것은 jQuery를 사용하지 않기 위해 쉽게 변경 될 수 있습니다. –
해 Anatoliy, 당신의 대답은 바로 나를 위해, 지금이 scipt에 대한 내 스크립트가 완료되었습니다. 매우 고마워요. – Firdi
+1 레버리지 정렬. 그러나 이것은 순수한 문자열 기반이며, 숫자 비교를하지 않으므로 '0'은 '00'또는 '0.0'과 다른 것입니다. – bobince