我正在为我开发的网站构建自定义计算器。我是一名新开发人员,这有点过头但我正在努力学习。
我试图获取2个变量并将它们合并为1然后使用它通过ajax从另一个页面调用div。我遇到的问题是,当我添加代码以组合2个变量时,它会使页面中断并且我不确定原因。
$(function(){
$("input:radio[name=f_1]").click(function() {
var type = $(this).val();
});
$("input:radio[name=f_1a]").click(function() {
var prod = $(this).val();
});
var JobType = type + prod;
});
你可以在这里看到它:http://rdmproductions.com/dev/
如果您获取JobType变量的行,页面将按预期运行。我只是不明白发生了什么以及如何解决它。
答案 0 :(得分:2)
您的变量type
和prod
是局部变量,因此它们在单击处理程序回调函数之外不可用。
如果您希望它们在这些单击处理程序之外可用,那么您需要在更高级别的范围内声明它们,或者将它们存储在超出单击处理程序函数生命周期的其他对象中。
您可能想要做的是在需要时获取type和prod的值,而不是尝试将它们保存在JobType
中。
您可以按需获取数据:
var JobType = $("input:radio[name=f_1]").val() + $("input:radio[name=f_1a]").val();
根本不需要两个单选按钮上的点击处理程序。
根据您的最新评论进行编辑:
您可以收听两个广播组的更改,检查两者是否已被选中,然后使用以下代码对组合值执行某些操作:
$("input:radio[name=f_1], input:radio[name=f_1a]").change(function() {
var f1 = $("input:radio[name=f_1]:checked").val();
var f1a = $("input:radio[name=f_1a]:checked").val();
if (f1 && f1a) {
// both radio buttons have been selected, do something here
var jobType = f1 + f1a;
// do something with jobType here
alert(jobType);
}
});
您可以在此处查看:http://jsfiddle.net/jfriend00/FJcTA/
答案 1 :(得分:1)
变量type和prod仅在其相关函数的范围内有效。此外,onclick事件仅在单击控件时触发,这将在代码运行后的某个时间点触发。代码似乎在呈现页面时运行,因此用户无论如何都没有机会点击按钮。因此,您需要在用户有机会完成表单后的逻辑时间执行计算。明显的候选人将在页面提交,或通过其他事件,如用户点击按钮。您甚至不需要使用单选按钮中的onclick事件,只需要连接无线电中的值,例如......
function onSubmit() {
var type = $("input:radio[name=f_1]").val();
var type = $("input:radio[name=f_1a]").val();
var jobType = type + prod;
// do something with jobType
}
希望这有帮助
答案 2 :(得分:0)
试试这个:
$(function() {
$("input:radio[name^=f_1]").click(function () {
var total = 0;
$("input:radio[name^=f_1]").each(function () {
total += parseInt($(this).val());
});
});
});
答案 3 :(得分:0)
$(function () {
var type, prod, jobType;
$("input:radio[name=f_1]").click(function() {
type = $(this).val();
});
$("input:radio[name=f_1a]").click(function() {
prod = $(this).val();
});
jobType = type + prod;
});