从输入按钮进行javascript点击功能

时间:2013-06-20 15:16:26

标签: jquery asp.net-mvc button

简单的问题,但我只是想知道我是否在点击此输入按钮时调用了正确的javascript。我不能在这个按钮上使用id。那么我如何在javascript中调用click事件而不是使用当前使用hte onclick im。

 <input type="button" class="text" value="@video.Text" onclick="@String.Format("videochange('{0}')",url);" />

3 个答案:

答案 0 :(得分:1)

尝试这样,

<input type="button" class="text" value="@video.Text" />

$(".test[type='button']").click(function(e){
    e.preventDefault();
    videochange('url');
});

答案 1 :(得分:0)

您可以使用两种方式,

1-纯javaScript:

<input type="button" class="text" value="@video.Text" />
<script>
buttons = document.getElementsByTagName( 'input' );
for( var i = 0; i < buttons.length; i++ )
{
  Btn = buttons[i];
  if( Btn.className == 'text' )
  {
   Btn.onclick = function()
   {
    /* [...] */
   }
  }
}
</script>

2- [或在jQuery中]

$('.text').click(function()
{
  /* [...] */
});

答案 2 :(得分:0)

如果你可以使用jQuery,那么更好的方法就是根本没有内联脚本(真的被认为是糟糕的形式)。

尝试这样的事情,而不是:

<input type="button" 
      class="text" 
      value="@video.Text" 
   data-url="@String.Format('{0}',url);" />

(为了便于阅读,将其拆分为单独的行...同样,根据模板的呈现方式,您可能会遇到意外终止字符串错误的问题,这就是为什么我将“{0}”更改为“{ 0}')

现在,在你的javascript中:

// when the dom is ready
$(function() {
    $('.text').click(function(evt){
        evt.preventDefault();
        var url = $(this).data('url');
        videochange(url);
    });
});

这恰当地分离了您的角色和职责......服务器端代码保持服务器端,并向视图提供数据。视图/客户端脚本然后处理视图端交互,而不会试图合并两种不同语言之间的语法。