[英]How to pass a string variable as an argument to a javascript function?
[英]Pass string variable to JavaScript function
我正在尝试将字符串值传递给按钮onclick事件,但javascript函数未从变量x读取任何内容
<button class="btn btn-buy" onclick="myFunction(@item.ProductId.ToString())" style="@btnstyle"><h4>Add to Basket</h4></button>
如何将变量值传递给Java脚本参数?
<script>
function myFunction(x) {
alertify.prompt('Prompt Title', x, '1'
, function (evt, value)
{
}
, function () {
alertify.error('Cancel') });
}
</script>
好像您只需要将值放在引号中一样,razor会将@item.ProductId.ToString()
的值直接放入html中,但不会放在引号中,因此当浏览器将其解释为javascript时会很困惑。
记住当您使用剃刀时,这是一个模板系统,可以输出文档,然后由浏览器进行解释,这会很有帮助。 @item.ProductId.ToString()
只是将一些文本放入该模板中。 Javascript无法访问该变量,除非可以通过模板使用。 由于这个原因,它需要被一些东西包围,以使javascript将其视为字符串。 实际上,这意味着用引号将其括起来,例如"@item.ProductId.ToString()"
举个例子:
function myFunction(x) { console.log(x) alertify.prompt('Prompt Title', x, '1', function(evt, value) { }, function() { alertify.error('Cancel') }); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/alertify.js/0.5.0/alertify.min.js"></script> <button class="btn btn-buy" onclick="myFunction('test')" style="@btnstyle"><h4>Add to Basket</h4></button>
在该示例中,如果'test'
没有用引号引起来,则它将是未定义的,因为它正在寻找一个名为test的变量:
function myFunction(x) { console.log(x) alertify.prompt('Prompt Title', x, '1', function(evt, value) { }, function() { alertify.error('Cancel') }); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/alertify.js/0.5.0/alertify.min.js"></script> <button class="btn btn-buy" onclick="myFunction(test)" style="@btnstyle"><h4>Add to Basket</h4></button>
假设@item.ProductId.ToString()
你想调用JS的toString()方法,那么你需要调用.toString
以小写T,而不是资本T
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.