Php Jquery val()不重新检查/重新计算该值
简短描述 我正在使用jquery、jqueryUI和ajax 我使用val()在字段第一次完美执行时从字段中获取值 但如果我更改字段中的值,该值将保持不变 长描述 我正在开发一个大项目我在这个项目上有2年的时间 我的头在抽动!;) 我有这样的想法: 这是div的html:Php Jquery val()不重新检查/重新计算该值,php,jquery,Php,Jquery,简短描述 我正在使用jquery、jqueryUI和ajax 我使用val()在字段第一次完美执行时从字段中获取值 但如果我更改字段中的值,该值将保持不变 长描述 我正在开发一个大项目我在这个项目上有2年的时间 我的头在抽动!;) 我有这样的想法: 这是div的html: <div id="add_task_diag" style="display: none"> <label for="task">Task : </label><input id
<div id="add_task_diag" style="display: none">
<label for="task">Task : </label><input id="taskfrm" label="Task" value="task" name="taskval" placeholder="e.g fill in tax form" />
<button value="submit" class="btn btn-large add_task_frm">Add task</button> <button class="btn btn-large cancel_add_task">Cancel</button>
</div>
<button class="btn btn-primary" id="add_task"><i class="icon-file icon-white"></i> Add Todo</button>
任务:
添加任务取消
添加待办事项
以下是脚本:
<script>
$(".add_task_frm").click(function() {
function taskgen() {
var data = "task=" + $("#taskfrm").val();
alert(data); // only for debuging
var task_data = data;
alert(task_data); // only for debuging
$.post("whereitneedtogo.php?task=action80", task_data), //this is the ajax part
$("#add_task_diag").dialog("destroy"); // I had here close I changed it to "destroy"
task_data = undefined; //I tried to unset the variable
}
taskgen();
});
</script>
$(“.add_task_frm”)。单击(函数(){
函数taskgen(){
var data=“task=”+$(“#taskfrm”).val();
警报(数据);//仅用于调试
var任务_数据=数据;
警报(任务_数据);//仅用于调试
$.post(“whereitneedtogo.php?task=action80”,task\u data),//这是ajax部分
$(#add#task_diag”).dialog(“destroy”)//我关闭了这里,我把它改为“destroy”
task_data=undefined;//我试图取消设置变量
}
taskgen();
});
当我运行它时,一切正常!当我用另一个值重新发送时,变量保持不变。e、 g如果我将test123放在second测试的字段中,它将保持test123
我需要重新加载页面以重置变量
我不想使用location.reload()
这个文件有1700多行,但这就是问题所在
我试过很多东西,比如:
-在Dom就绪后设置脚本
-将我的变量设置为未定义或空
-销毁jquery选项卡
-唯一适合我的部分似乎是location.reload,但我的应用程序完全是ajax
感谢您的帮助,我希望这是一个愚蠢或简单的问题。为什么每次单击时都要声明并调用该函数。。尝试将其移到click事件处理程序之外
<script>
$(".add_task_frm").click(function() {
taskgen();
});
function taskgen() {
var data = "task=" + $("#taskfrm").val();
alert(data); // only for debuging
var task_data = data;
alert(task_data); // only for debuging
$.post("whereitneedtogo.php?task=action80", task_data), //this is the ajax part
$("#add_task_diag").dialog("destroy"); // I had here close I changed it to "destroy"
task_data = undefined; //I tried to unset the variable
}
</script>
$(“.add_task_frm”)。单击(函数(){
taskgen();
});
函数taskgen(){
var data=“task=”+$(“#taskfrm”).val();
警报(数据);//仅用于调试
var任务_数据=数据;
警报(任务_数据);//仅用于调试
$.post(“whereitneedtogo.php?task=action80”,task\u data),//这是ajax部分
$(#add#task_diag”).dialog(“destroy”)//我关闭了这里,我把它改为“destroy”
task_data=undefined;//我试图取消设置变量
}
当您想从其他位置调用taskgen()时,也可能会遇到范围问题。这是因为您在单击处理程序中定义了闭包。将
taskgen
函数移到click处理程序之外,将所有内容包装在$(document).ready()
中,您就可以开始了!见下文:
$(document).ready(function() {
$(".add_task_frm").click(function() {
taskgen();
});
function taskgen() {
var data = "task=" + $("#taskfrm").val();
alert(data); // only for debuging
var task_data = data;
alert(task_data); // only for debuging
$.post("whereitneedtogo.php?task=action80", task_data), //this is the ajax part
$("#add_task_diag").dialog("close").dialog("destroy"); // I usually chain 'close' and 'destroy'
}
});
您是否尝试将函数声明移到click事件处理程序之外?@Philipp这是最肯定的答案它对我来说是正确的。每次我单击todo按钮,文本框中的任何值都会得到正确的警报。Philip否我直到现在才尝试。。。。。你看到了非常愚蠢的一个,但是大量的编码让我看不见东西。。。谢谢你,我的朋友!丹尼尔,谢谢!谢谢你的提示,摧毁和关闭!