1

eventhanlder为我的按钮单击添加了一个简单的方法,并在单击它时传递了两个参数。嗨是未定义的错误正在抛出。如果我把“嗨”(用双引号引起来)事件处理程序根本不会触发。我可以知道需要解决什么问题。

<%#(string)DataBinder.Eval(Container, "DataItem.Category")%>我需要这个完全符合我的要求,我必须在单击中继器行时传递一些东西。

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
    <script type ="text/javascript" language = "javascript">
        function OnClickeHandler(i, j) {
            debugger;
        }
    </script>
        <form id="form1" runat="server">
        <div>
        <input type ="button" id = "myButton" value = "Click" onclick = "OnClickeHandler(1,Hi)" />
        </div>
        </form>
    </body>
    </html>
4

2 回答 2

1

使用单引号将 hi 作为字符串传递

Onclick="OnClickeHandler(1,'嗨')"

在 HTML 中,当您编写任何属性时,您会用双引号的单引号来覆盖它们

就像以下两者都是有效的。

onclick="abc()" 
onclick='abc()'

JavaScript 可以通过单引号或双引号覆盖 sting,您还需要确保为什么传递字符串不会破坏 html。

以下所有内容均有效

onclick="abc('xyz')" 
onclick='abc("xyz")'
onclick="abc('x\'yz')"      ------ passing '  as string 
onclick='abc("xy\"z")'      ------ passing "  as string 

您只需要确保您用来覆盖 html 属性的任何引用都不会在函数调用或属性值中使用。

于 2012-07-07T19:20:54.897 回答
1

您需要将 Hi 放在单引号中:'Hi',因为对该函数的调用已经在双引号中

于 2012-07-07T19:21:24.863 回答