我在document.ready()中有一个函数,如下所示
$(document).ready(function () {
var reason = $("#DropDown_Select").val() // i can access this
var delreason;
$('#btnDeleteRow').click(function () {
delreason = prompt("Are u serious");
alert(delreason); //Here i am getting entered prompt value sucessfully
});
//when i try to use the delreason else where in my code i am getting " UNDEFINED "
//Actually i need this so i can pass it to controller
"sDeleteURL": "/Home/DeleteData/?start=" + delreason //delreason here is undefined
});
在控制器部分,我使用的是:
var value = Request.QueryString["start"]; //undefined value coming
编辑1:
var delreason='';
$(document).ready(function () {
var reason = $("#DropDown_Select").val()
var oTable;
$('#btnDeleteRow').click(function () {
delreason = prompt("r u serious");
alert(delreason);
debugger;
});
oTable = $('#myDataTable').dataTable({
"bProcessing": true,
"bServerSide": true,
"bAutoWidth": true,
"sAjaxSource": "AjaxHandler"
});
oTable.oTable.makeEditable({
"sDeleteURL": "/Home/DeleteData/?start=" + delreason // is there any problem here
});
非常感谢任何解决方法。我无法测试sDeleteUrl中的dereason是否存在但是当我尝试提取字符串时,我在控制器上没有得到任何东西。
答案 0 :(得分:1)
如果您的真正问题是您想要在任何地方访问delreason,您必须在document.ready
之外声明它答案 1 :(得分:1)
var delreason;
需要在$(document).ready()
之外声明全局访问它。
您可以理解与FIDDLE
的区别答案 2 :(得分:1)
方法1 - 使用窗口全局对象:
$(document).ready(function () {
var reason = $("#DropDown_Select").val() // i can access this
$('#btnDeleteRow').click(function () {
window.delreason = prompt("Are u serious");
alert(window.delreason);
});
});
方法2 - 在全局范围内(在闭包之外)声明dereason:
var delreason = '';
$(document).ready(function () {
var reason = $("#DropDown_Select").val() // i can access this
$('#btnDeleteRow').click(function () {
delreason = prompt("Are u serious");
alert(delreason);
});
});
答案 3 :(得分:1)
delreason
在闭包(函数体)中声明,并且只存在于此函数块中。
如果您尝试在同一个闭包内(在文档就绪时执行的函数体)中访问此变量表单代码,则该变量可用。
如果您尝试从其他地方访问它,它将无法使用。
一个可能性是在全局范围内定义此变量,在浏览器中是窗口对象,如下所示:
window.delreason = '...';
或只是
delreason = '...'; // without the var
但是如果你这样做,请考虑到你正在污染全球范围,这通常不是一个好主意(你可能会与其他脚本发生冲突)。但是,如果您没有其他脚本并且它是一个非常简单的页面,那么它是可以接受的(虽然不是很容易接受)。
另一种选择是创建一个隐藏字段,并使用jquery在此字段中设置和获取值:
<input type='hidden' id='delreason'/>
在你的js中:
$('#delreason').val('written value');
var delreason = $('#delreason').val();