Javascript 更新按钮单击Laravel中AJAX的url
我有一个简单的表单,在blade模板中有一个“提交”按钮和一个额外的“添加”按钮。在表单submit上,有一个到控制器的ajax回调,它验证提供的值。根据控制器返回的结果,我想更改“Add”按钮onClick事件。这是刀锋剪:Javascript 更新按钮单击Laravel中AJAX的url,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一个简单的表单,在blade模板中有一个“提交”按钮和一个额外的“添加”按钮。在表单submit上,有一个到控制器的ajax回调,它验证提供的值。根据控制器返回的结果,我想更改“Add”按钮onClick事件。这是刀锋剪: <button id="theId" type="button" >Add</button> 基于所有源,location.href或window.location都应该将我重定向到不同的页面(在我的情况下,只是不同的子页面),但事实并非如此。经
<button id="theId" type="button" >Add</button>
基于所有源,location.href或window.location都应该将我重定向到不同的页面(在我的情况下,只是不同的子页面),但事实并非如此。经过数小时的研究,我认为我得到了一个错误的按钮,或者ajax本身出了问题,但后来我添加了addButton.html行,效果很好。我在这里做错了什么?从这里的MDN文档:,通过on*属性注册的处理程序将通过相应的on*属性可用,但不是相反
这意味着div的onclick
属性仍然是HTML中的旧事件处理程序。
为了保持正常,请始终使用addEventListener
方法注册事件侦听器。从MDN文档中,通过on*属性注册的处理程序将通过相应的on*属性可用,但反过来则不可用
这意味着div的onclick
属性仍然是HTML中的旧事件处理程序。
为了保持理智,请始终使用
addEventListener
方法注册事件侦听器。看起来您试图将jQuery对象的onclick
属性设置为函数,这不是在jQuery中设置单击事件处理程序的正确方法
您应该使用jQuery对象的方法来设置单击处理程序。并使用该方法删除上一个处理程序:
addButton.off('click');
addButton.click(function () {
window.location="https://www.example.com";
})
看起来您正在尝试将jQuery对象的
onclick
属性设置为函数,这不是在jQuery中设置单击事件处理程序的正确方法
您应该使用jQuery对象的方法来设置单击处理程序。并使用该方法删除上一个处理程序:
addButton.off('click');
addButton.click(function () {
window.location="https://www.example.com";
})
获取按钮,删除以前的单击事件,使用http/https前缀添加新事件,更改按钮文本
success: function(result){
var button = document.querySelector('#theId');
button.addEventListener('click', function () {
window.location = 'https://www.google.it';
});
button.innerHTML = "my new button text";
}
获取按钮,删除以前的单击事件,使用http/https前缀添加新事件,更改按钮的文本
success: function(result){
var button = document.querySelector('#theId');
button.addEventListener('click', function () {
window.location = 'https://www.google.it';
});
button.innerHTML = "my new button text";
}
尝试jQuery的
click()
函数:如何设置addButton
?尝试jQuery的click()
函数:如何设置addButton
?我得到:“未捕获类型错误:addButton.removeEventListener不是函数”抱歉,我仍然指向您的旧代码,该变量应该是“button”我已经更新了代码我应该将什么作为第二个参数传递给removeEventListener?一个空函数?有效,它是一个空函数。请更新您的答案,以便我可以接受。这应该是您使用的旧函数,但在这种情况下,如果您仅在那里使用它,也可以将其设置为null。你也可以尝试使用新更改的代码吗?我得到:“未捕获类型错误:addButton.removeEventListener不是函数”抱歉,我仍然指向你的旧代码,该变量应该是“button”我已经更新了代码我应该将什么作为第二个参数传递给removeEventListener?一个空函数?有效,它是一个空函数。请更新您的答案,以便我可以接受。这应该是您使用的旧函数,但在这种情况下,如果您仅在那里使用它,也可以将其设置为null。你也可以试试新修改的代码吗?奇怪,这对我不起作用。我点击“添加”按钮,什么也没发生示例fiddle没有重定向页面,它在控制台中记录了一个字符串,以显示处理程序发生了更改。Siddle不允许您在窗口位置发生更改的地方共享fiddle,因此我无法向您显示,只需将此window.location=”放在https://www.example.com";代码>在单击处理程序中。很奇怪,这对我不起作用。我点击“添加”按钮,什么也没发生示例fiddle没有重定向页面,它在控制台中记录了一个字符串,以显示处理程序发生了更改。Siddle不允许您在窗口位置发生更改的地方共享fiddle,因此我无法向您显示,只需将此window.location=”放在https://www.example.com";代码>在单击处理程序中。它起作用了。