Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从输入按钮生成javascript单击函数_Jquery_Asp.net Mvc_Button - Fatal编程技术网

Jquery 从输入按钮生成javascript单击函数

Jquery 从输入按钮生成javascript单击函数,jquery,asp.net-mvc,button,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);" /> 像这样试试 <input type="

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

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

像这样试试

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

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

$(“.test[type='button']”)。单击(函数(e){
e、 预防默认值();
视频更改(“url”);
});
您可以使用两种方法

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>

如果可以使用jQuery,那么更好的方法是根本不使用内联脚本(实际上被认为是糟糕的形式)

请尝试以下方法:

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

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

您可以按类、按标记名、按属性值选择,或者根据它在DOMi中的位置,我知道,但我实际上要求有人给我看正确的格式,因为我以前试过,但无法使它正常工作。html一旦加载后会是什么样子?value=“@video.Text”是否保持这种状态???不,根据其加载的模型进行更改。是的,这样就可以了
<input type="button" 
      class="text" 
      value="@video.Text" 
   data-url="@String.Format('{0}',url);" />
// when the dom is ready
$(function() {
    $('.text').click(function(evt){
        evt.preventDefault();
        var url = $(this).data('url');
        videochange(url);
    });
});