Javascript 禁用链接,直到输入和选择字段具有值
我希望确保所有下拉字段都有一个选定值,输入字段都有一个值。我怎么能这样做呢?提前谢谢Javascript 禁用链接,直到输入和选择字段具有值,javascript,jquery,forms,Javascript,Jquery,Forms,我希望确保所有下拉字段都有一个选定值,输入字段都有一个值。我怎么能这样做呢?提前谢谢 $(document).ready(function() { validate(); $('input').on('keyup', validate); }); function validate() { var inputsWithValues = 0; var myInputs = $("input:not([type='hidden'])"); myInputs.each(function(e) {
$(document).ready(function() {
validate();
$('input').on('keyup', validate);
});
function validate() {
var inputsWithValues = 0;
var myInputs = $("input:not([type='hidden'])");
myInputs.each(function(e) {
// if it has a value, increment the counter
if ($(this).val()) {
inputsWithValues += 1;
}
});
if (inputsWithValues == myInputs.length) {
$(“.button_link").removeClass('disabled').addAttr("href");
} else {
$(“.button_link").addClass('disabled').removeAttr("href");
}
}
我想看看如何检测输入字段和选择?我的代码不适用于选择
var myInputs=$(“输入:非([type='hidden']))”
(选择)???您可以尝试类似的方法。你可能需要稍微调整一下
$(document).ready(function() {
//validate();
$('input').on('blur', function(){
if(validate()){
$(".button_link").prop('disabled', false);
} else {
$(".button_link").prop('disabled', true);
}
});
$('select').on('change', function(){
if(validate()){
$(".button_link").prop('disabled', false);
} else {
$(".button_link").prop('disabled', true);
}
});
});
function validate() {
$("input:not([type='hidden'],[type='button'])").each(function(){
if($(this).val() == ""){
return false;
}
});
$("select").each(function(){
if($(this).val() == ""){ // change empty string if unselected has a value (e.g. 0)
return false;
}
});
return true;
}
好的,我终于让这个工作,如果有任何人有任何调整,请让我知道
<script>
$(document).ready(function() {
validate();
$('input').on('keyup', validate);
$('select').on('change', validate);
});
function validate() {
var inputsWithValues = 0;
// get all input fields except for type='submit'
// var myInputs = $("input:not([type='submit'])");
var myInputs = $("option:selected, input:not([type='hidden'])");
myInputs.each(function(e) {
// if it has a value, increment the counter
if ($(this).val()) {
inputsWithValues += 1;
}
});
if (inputsWithValues == myInputs.length) {
$(".button_link").removeClass('disabled').addAttr("href");
} else {
$(".button_link").addClass('disabled').removeAttr("href");
}
}
</script>
$(文档).ready(函数(){
验证();
$('input')。在('keyup',validate)上;
$('select')。在('change',validate')上;
});
函数验证(){
var InputSwithValue=0;
//获取除type='submit'之外的所有输入字段
//var myInputs=$(“输入:非([type='submit']))”;
var myInputs=$(“选项:选中,输入:不([type='hidden']))”;
myInputs.each(函数(e){
//如果有值,则递增计数器
if($(this.val()){
输入值+=1;
}
});
if(inputsWithValues==myInputs.length){
$(“.button_link”).removeClass('disabled').addAttr(“href”);
}否则{
$(“.button_link”).addClass('disabled').removeAttr(“href”);
}
}
看来你走对了方向。不过,你需要记住几件事。下拉列表不是输入,而是选择。此外,在输入时,检查$(this).val()将始终为true。也许你的意思是$(这个).val()!=“我几乎被卡住了,我试了几个小时,但都没有成功。如何检查以确保Select在输入字段中也有一个值?我不确定从何处开始调整。我把它放进去了,但它并没有禁用按钮,也似乎不起作用。它少了2个)。我不知道如何找到他们应该去的地方,我不是一个程序员,并试图抓住它,但娜达。2缺失什么?你也可以发布你的HTML代码吗?这可能会有所帮助,因为上面的代码缺少右括号。我的代码似乎调试得很好,它不适用于Select。button\u链接指的是什么类型的元素?顺便说一句,没有addAttr()函数。你想在那里做什么?