JavaScript调用传递变量参数的相关问题及解决办法

时间:2021-05-26

举例

有一个js方法,接收参数:

复制代码 代码如下:
function f1(myValue){ alert(myValue); }

有一个变量:

复制代码 代码如下:
var passValue="Hello World";

在调用这个方法的时候(我是出现在Ajax提交的时候):

@Ajax.ActionLink("文本","控制器",new{参数},new AjaxOptions(){ HttpMethod="post",OnSuccess="f1(PassValue)" })

这里注意最后的OnSuccess,如果直接把变量丢进去,会把变量认为是一个字符串

如果改成OnSuccess="f1("+PassValue+")"也不行

搜了一下是需要转义字符

OnSuccess="f1('"+PassValue+"')"

这样就没问题了

不过上面调用Ajax的时候没注意,这里只是为了给异步调用方法f1()传参数

所以就不用@Ajax了 改成普通A标签就可以了 不然会调用两次控制器

ps:js将方法作为参数调用

<!DOCTYPE html><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>js调用</title> <script src="cssjs/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $().ready(function () { $.dialog = function (settings) { if ($.isFunction(settings.okCallback)) { if (settings.height == null) { if (settings.okCallback.apply() != false) { alert("1"); } } else { if (settings.okCallback.call(this, settings.height) != false) { alert("2"); } } } } }); </script> <script type="text/javascript"> $(function () { $.dialog({ okCallback: print, height: {data:"你好"} }); }); function print(ee1) { alert("print(ee1)"); alert(ee1.data); </script></head><body> </body></html>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章