我正在尝试以逗号分隔的方式获取keyup上的每个输入值。我的代码在onclick事件中正常工作,但在keyup上没有。
<input type="text" class="date" name="date[]" onkeyup="showHint(this.value)" />
这是我的js函数showhint的一部分,我在那里定义输入值。
var DoB = [];
$(".date").each(function(){
DoB.push($(this).val());
});
var newDob = DoB.slice(0,-1);
xmlhttp.open("GET","validation.php?q="+newDob+",true);
任何人都可以帮我解决这个错误吗?
提前致谢。
答案 0 :(得分:0)
试试这个:
$( ".date" ).keyup(function() {
DoB.push($(this).val());
});
答案 1 :(得分:0)
根据您的代码,您不必保留数组DoB。因为你只有一个dob元素。你可以直接获得输入值。
以下代码适合您
function showHint(){
var DoB = $(".date").val();
console.log(DoB);
xmlhttp.open("GET","validation.php?q="+DoB +",true);
}
答案 2 :(得分:0)
您确定问题是keyup
吗?在我看来,DoB.slice(0, -1)
导致您的代码无法正常工作。
我用DoB.join(',');
替换它以创建逗号分隔的字符串。
function showHint(someValue) {
var DoB = [];
$(".date").each(function(){
//console.log($(this).val());
DoB.push($(this).val());
});
//var newDob = DoB.slice(0, -1);
var newDob = DoB.join(',');
document.getElementById("URL").value = "validation.php?q="+newDob;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="date" name="date[]" onkeyup="showHint(this.value)" />
<input type="text" class="date" name="date[]" onkeyup="showHint(this.value)" />
<br>URL : <input type="text" size="50" id="URL"/>
答案 3 :(得分:0)
之前我也遇到过这种情况,当我在脚本中使用onkeyup事件时,它对我来说很好。
以下是一个例子:
document.getElementById("fname").onkeyup = function() {myFunction()};
function myFunction() {
var x = document.getElementById("fname");
x.value = x.value.toUpperCase();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<body>
<p>Press a key inside the text field and release it to set the text to uppercase.</p>
Enter your name: <input type="text" id="fname">
</body>
</html>