pure DOM/JS solution:
<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>