mvc html 按钮事件,关于asp.net mvc:在HTMLButtonElement.onclick中未定义

美好的一天,

我有一个按钮

update

那正在调用一个ajax函数

$(document).ready(function () {

function UpdateStatus(Id) {

$.ajax({

type:"Post",//or POST

url: '/myController/UpdateSomething?Id=' + Id,

//  (or whatever your url is)

data: { data1: var1 },

success: function (responsedata) {

// process on data

alert("got response as" +"'" + responsedata +"'");

}

});

}

}

我的问题是我收到一个错误:

UpdateStatus is not defined at HTMLButtonElement.onclick

我究竟做错了什么? 谢谢

更新资料

当我尝试运行此代码

@section scripts

{

$(document).ready(function () {

//Carga datos del curso

console.log("asdf");

});}

我没有在控制台中收到该消息。

function F(user_id) {

var user_id = user_id;

$.ajax({

type:"GET",

url:"http://127.0.0.1:8000/preference",

data: {'user_id':user_id},

async: false,

success: function (result) {

console.log(result)

}

});

}

第一行自动不显示。它是脚本的类型和src属性。我使用了" text / javascript"和" http://code.jquery.com/jquery-latest.js"。

这个问题我找到2个解决方案。一种如上所述。将脚本分为两部分。其次是将功能移到按钮标签下。

这确实是一个范围问题。但是我没有找到解决方案的逻辑。但是我解决了。

这绝对是一个范围问题,因为UpdateStatus在document.ready()函数的范围内定义。您可以将UpdateStatus声明为document.ready()块之外的变量,并在其中声明一个函数:

var UpdateStatus;

$(document).ready(function () {

UpdateStatus = function () {

var buttonId = $('#4').attr('id');

$.ajax({

type:"POST",

url: '/myController/UpdateSomething',

data: { Id: buttonId, ... }, // setting parameters

success: function (responsedata) {

// process on data

alert("got response as '" + responsedata +"'");

}

});

}

});

另外,根据标准事件注册模型和关注点分离,建议您通过检索按钮ID来使用不干扰JavaScript的代码,如下所示:

$(document).ready(function () {

$('#4').click(function() {

var buttonId = $(this).attr('id');

$.ajax({

type:"POST",

url: '/myController/UpdateSomething',

data: { Id: buttonId, ... }, // setting parameters

success: function (responsedata) {

// process on data

alert("got response as '" + responsedata +"'");

}

});

});

});

由于您使用的是AJAX POST,因此无需在url: '/myController/UpdateSomething?Id=' + Id之类的URL中使用查询字符串参数。

相关问题:

未捕获的ReferenceError :(函数)未在HTMLButtonElement.onclick上定义

为什么内联事件处理程序属性在现代语义HTML中是个坏主意?

问题是,您正在jQuery的document.ready事件中定义方法定义。解析并呈现按钮标记时,未定义JavaScript方法,因此会出现错误。

当文档准备就绪时,jquery ready方法将在稍后执行(HTML的解析和渲染已完成,可以安全地访问DOM)。至此,HTML已被渲染。

在它外面定义它。

function UpdateStatus(Id) {

alert('UpdateStatus called');

}

$(function () {

});

另一种选择是使用非联合JavaScript。因此,您无需在单击事件处理程序与按钮标记之间建立连接,而是在激发文档就绪后再进行连接。

update

并连接点击事件

$(function () {

$("#4").click(function (e) {

e.preventDefault();

alert('User clicked');

});

});

你好,谢谢,你能看到我的最新消息吗? 谢谢

检查您的浏览器控制台,看是否有脚本错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值