首页 前端知识 jQuery禁用/启用提交按钮

jQuery禁用/启用提交按钮

2024-04-29 11:04:16 前端知识 前端哥 598 26 我要收藏

问:

我有这个 HTML:

复制

我该怎么做这样的事情:

当文本字段为空时,应禁用提交 (disabled=“disabled”)。

在文本字段中键入内容以删除禁用属性时。

如果文本字段再次变为空(文本被删除),则应再次禁用提交按钮。

我试过这样的事情:

$(document).ready(function(){
$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').change(function(){
if($(this).val != ''){
$('input[type="submit"]').removeAttr('disabled');
}
});
});
复制

……但它不起作用。有任何想法吗?

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

答1:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

问题是仅当焦点从输入移开时才会触发更改事件(例如,有人单击输入或标签退出)。尝试使用 keyup 代替:

$(document).ready(function() {
$(':input[type="submit"]').prop('disabled', true);
$('input[type="text"]').keyup(function() {
if($(this).val() != '') {
$(':input[type="submit"]').prop('disabled', false);
}
});
});
复制

prop('disabled', true) 方法应该在 attr('disabled','disabled') 方法上使用 see the docs on prop()

答2:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

$(function() {
$(":text").keypress(check_submit).each(function() {
check_submit();
});
});
function check_submit() {
if ($(this).val().length == 0) {
$(":submit").attr("disabled", true);
} else {
$(":submit").removeAttr("disabled");
}
}
复制

答3:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

这个问题已有 2 年历史,但它仍然是一个很好的问题,它是 Google 的第一个结果…但所有现有答案都建议设置和删除 HTML 属性 (removeAttr(“disabled”)) “disabled”,这不是正确的方法。关于属性与属性有很多混淆。

HTML

标记 is called a boolean attribute by the W3C 中 中的“已禁用”。

HTML 与 DOM

引用:

一个属性在 DOM 中;一个属性位于解析为 DOM 的 HTML 中。

https://stackoverflow.com/a/7572855/664132

jQuery

有关的:

尽管如此,关于checked 属性最重要的概念是它不对应于checked 属性。该属性实际上对应于 defaultChecked 属性,应该只用于设置复选框的初始值。选中的属性值不会随着复选框的状态而改变,而选中的属性会。因此,确定是否选中复选框的跨浏览器兼容方法是使用属性…

相关的:

属性通常会影响 DOM 元素的动态状态,而不会更改序列化的 HTML 属性。示例包括输入元素的 value 属性、输入和按钮的 disabled 属性或复选框的 checked 属性。应该使用 .prop() 方法来设置禁用和检查,而不是 .attr() 方法。

$( "input" ).prop( "disabled", false );
复制

概括

要 […] 更改 DOM 属性,例如 […] 表单元素的禁用状态,请使用 .prop() 方法。

(http://api.jquery.com/attr/)

至于问题的禁用更改部分:有一个名为“输入”的事件,但 browser support is limited 它不是 jQuery 事件,所以 jQuery 不会让它工作。更改事件可靠地工作,但在元素失去焦点时触发。所以可以将两者结合起来(有些人也听keyup和paste)。

这是一段未经测试的代码来说明我的意思:

$(document).ready(function() {
var $submit = $('input[type="submit"]');
$submit.prop('disabled', true);
$('input[type="text"]').on('input change', function() { //'input change keyup paste'
$submit.prop('disabled', !$(this).val().length);
});
});
复制

答4:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

要删除禁用的属性使用,

$("#elementID").removeAttr('disabled');
复制

并添加禁用属性使用,

$("#elementID").prop("disabled", true);
复制

享受 :)

答5:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

或者对于我们不喜欢在每件小事上都使用 jQ 的人:

document.getElementById("submitButtonId").disabled = true;
复制

这个获得 25 票赞成的答案解释了世界各地许多糟糕的代码:/

答6:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

eric,当用户输入文本然后删除所有文本时,您的代码似乎对我不起作用。如果有人遇到同样的问题,我创建了另一个版本。来吧,伙计们:

$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').keyup(function(){
if($('input[type="text"]').val() == ""){
$('input[type="submit"]').attr('disabled','disabled');
}
else{
$('input[type="submit"]').removeAttr('disabled');
}
})
复制

答7:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

它将像这样工作:

$('input[type="email"]').keyup(function() {
if ($(this).val() != '') {
$(':button[type="submit"]').prop('disabled', false);
} else {
$(':button[type="submit"]').prop('disabled', true);
}
});
复制

确保您的 HTML 中有一个“禁用”属性

答8:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

你也可以使用这样的东西:

$(document).ready(function() {
$('input[type="submit"]').attr('disabled', true);
$('input[type="text"]').on('keyup',function() {
if($(this).val() != '') {
$('input[type="submit"]').attr('disabled' , false);
}else{
$('input[type="submit"]').attr('disabled' , true);
}
});
});
复制

这是Live example

答9:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

对于表单登录:

复制

Javascript:

$(document).ready(function() {
$('#send').prop('disabled', true);
$('#email, #password').keyup(function(){
if ($('#password').val() != '' && $('#email').val() != '')
{
$('#send').prop('disabled', false);
}
else
{
$('#send').prop('disabled', true);
}
});
});
复制

答10:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

这是文件输入字段的解决方案。

要在未选择文件时禁用文件字段的提交按钮,然后在用户选择要上传的文件后启用:

$(document).ready(function(){
$("#submitButtonId").attr("disabled", "disabled");
$("#fileFieldId").change(function(){
$("#submitButtonId").removeAttr("disabled");
});
});
复制

html:

<%= form_tag your_method_path, :multipart => true do %><%= file_field_tag :file, :accept => "text/csv", :id => "fileFieldId" %><%= submit_tag "Upload", :id => "submitButtonId" %><% end %>
复制

答11:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

我们可以简单地拥有 if & else .if 假设您的输入为空,我们可以拥有

if($(#name).val() != '') {
$('input[type="submit"]').attr('disabled' , false);
}
复制

否则我们可以将 false 更改为 true

原文链接:https://www.huntsbot.com/qa/LPlo/jquery-disable-enable-submit-button?lang=zh_CN&from=csdn

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/5967.html
标签
xhtml
评论
还可以输入200
共0条数据,当前/页
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!