auto complete script ændring
Hej jeg har flg. javascript som gør at man i et felt kan færdiggøre f.eks. brugernavn, ved at trykke på Tab knappen.Men dette virker selvfølgelig ikke i IE.. er der nogen der kan lave et workarround til det gerne i prototype.js
<script>
// takes a text field and an array of strings for autocompletion
function autocomplete(input, data) {
if (input.value.length == input.selectionStart && input.value.length == input.selectionEnd) {
var candidates = []
// filter data to find only strings that start with existing value
for (var i=0; i < data.length; i++) {
if (data[i].indexOf(input.value) == 0 && data[i].length > input.value.length)
candidates.push(data[i])
}
if (candidates.length > 0) {
// some candidates for autocompletion are found
if (candidates.length == 1) input.value = candidates[0]
else input.value = longestInCommon(candidates, input.value.length)
return true
}
}
return false
}
// finds the longest common substring in the given data set.
// takes an array of strings and a starting index
function longestInCommon(candidates, index) {
var i, ch, memo
do {
memo = null
for (i=0; i < candidates.length; i++) {
ch = candidates[i].charAt(index)
if (!ch) break
if (!memo) memo = ch
else if (ch != memo) break
}
} while (i == candidates.length && ++index)
return candidates[0].slice(0, index)
}
function getData() {
return document.getElementById('data').value.split("\n")
}
var input = document.getElementById('messagetext')
// catch TAB keypresses in text input
input.addEventListener('keydown', function(e) {
if (e.keyCode == 9 && autocomplete(this, getData())) e.preventDefault()
}, false)
input.focus()
</script>