我可以对此代码使用一些帮助。
我创建了一个小提示来展示问题 - http://jsfiddle.net/r4hqC/
我试图读取2个无线电组的值,然后通过GET请求(Ajax)发送它们的值。
除第一次无线电点击外,代码有效,其中无线电的值返回为未定义,直到无线电更改为止。这种情况发生在两个群体上。
以下是代码:
function jsdatabaseMatch()
{
$(document).ready(function(){
$(".form1").change(function () {window.vala = $('.form1:checked').val(); //Radio group 1
$(".form2").change(function () {window.valb = $('.form2:checked').val(); //Radio group 2
});
});
});
alert(window.vala); //Radio 1 contains..
alert(window.valb); //Radio 2 contains..
var getr = window.vala + "&pricerange=" + window.valb; //GET request
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","showcase.php?yes="+getr,false); //Prepare GET Request
xmlhttp.send();
document.getElementById("pricecompare").innerHTML=xmlhttp.responseText;
}
我尝试将.change
替换为.click
,结果是相同的。
提前致谢。
解决了tymeJV
onclick
。jsdatabaseMatch
个触发器
function jsdatabaseMatch()
事件中的jQuery中执行.change
。这是:
$(document).ready(function(){
$(".form1").change(function () {window.vala = this.value;}); //Radio group 1
$(".form1").change(jsdatabaseMatch); //Radio group 1
$(".form2").change(function () {window.valb = this.value;}); //Radio group 2
$(".form2").change(jsdatabaseMatch); //Radio group 2
});
function jsdatabaseMatch()
{
alert(window.vala);
alert(window.valb);
var getr = window.vala + "&pricerange=" + window.valb; //GET request
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","showcase.php?yes="+getr,false); //Prepare GET Request
xmlhttp.send();
document.getElementById("pricecompare").innerHTML=xmlhttp.responseText;
}
答案 0 :(得分:0)
完成后,您需要关闭更改事件。另外,使用this
选择器分配值。
$(".form1").change(function() {
window.vala = this.value; //Radio group
}); // <---You can always add .change() right here to fire the event on DOM ready.
$(".form2").change(function () {
window.valb = this.value; //Radio group 2
});