如果使用某个文本输入,我需要禁用文件输入。或者,如果使用文件输入,则禁用文本输入。但是,如果最终用户改变主意,那么我希望能够在文本输入为空时启用文件输入,反之亦然。
如果使用文本输入,这适用于禁用文件输入。但是,如果我清除文本输入,文件输入将保持禁用状态:
$("#linkurl").on('keyup blur', function(){
$('#link').attr('disabled', this.value.trim().length);
});
我尝试了这个,但显然不起作用:
$("#linkurl").on('keyup blur', function(){
if($.trim($("#linkurl").val()) === ''){
$('#link').attr('disabled');
}else{
$('#link').removeAttr('disabled');
}
});
这是我的HTML:
<form action="default.cfm" method="post" enctype="multipart/form-data" id="linkform">
<div id="formdiv">
<strong style="color: #ff0000;">Linked Text</strong>: Enter the text you wish to display for the link.<br/>
<strong style="color: #ff0000;">URL</strong>: Enter a URL if you wish to link to another website (include: http://).<br/>
<strong style="color: #ff0000;">PDF:</strong> The PDF file you wish to upload.<br/><br/>
<strong style="color: #ff0000;">Linked Text:</strong><br/>
<input type="text" name="linktext" id="linktext" required><br/><br/>
<strong style="color: #ff0000;">URL:</strong><br/>
<input type="text" name="linkurl" id="linkurl" value="If link, enter here..." required><br/><br/>
<strong style="color: #ff0000;">PDF:</strong><br/>
<input type="file" name="link" id="link" required>
</div>
<div id="submitbox"><input type="submit" value="Click to Create Link" id="updatebutton"></div>
我的头的一侧是完全秃顶,因为我把头发拉过来。如果有更好的方法,我愿意接受建议......
...谢谢
答案 0 :(得分:1)
请更改以下代码
$("#linkurl").on('keyup blur', function(){
if($.trim($("#linkurl").val())){
$('#link').attr("disabled", "disabled");
}else{$('#link').removeAttr('disabled');}
});
$("#link").on("change", function(){
if($.trim($("#link").val())){
$('#linkurl').attr("disabled", "disabled");
}else{$('#linkurl').removeAttr('disabled');}
});
<强> jsfiddle 强>
答案 1 :(得分:0)
为什么不使用 length 属性来查看输入是否为空?
例如:
$("#linkurl").on('keyup blur', function(e){
if($(this).val().length == 0){
$('#link').attr('disabled');
}else{
$('#link').removeAttr('disabled');
}
});
答案 2 :(得分:0)
这应该适合你:
$('#linkurl').on('keyup blur', function () {
'use strict';
if ($.trim($('#linkurl').val())) {
// The field is not empty
$('#link').prop('disabled', true);
} else {
$('#link').prop('disabled', false);
}
});
这是 JSFiddle 。
答案 3 :(得分:0)
$("#linkurl").on('keyup blur', function(e){
if(trim($(this).val())==''){
$('#link').attr('disabled');
}else{
$('#link').removeAttr('disabled');
}
});
答案 4 :(得分:0)
试试这个,我认为你的if条件也是错误的,如果#linkurl中有一些值,那么你想禁用#link else启用它
$("#linkurl").on('keyup', function(){
if($.trim($(this).val()).length == 0){
$('#link').removeAttr('disabled');
}else{
$('#link').attr('disabled','disabled');
}
});
答案 5 :(得分:0)
HTML
<!--html part -->
<input type="text" id="vurl" />
<input type="text" id="yurl" />
<input type="file" id="video" />
JS
$("#vurl").on('keyup blur', function(){
if($.trim($("#vurl").val())){
$('#video').attr("disabled", "disabled");
}else{$('#video').removeAttr('disabled');}
});
$("#yurl").on('keyup blur', function(){
if($.trim($("#yurl").val())){
$('#video').attr("disabled", "disabled");
}else{$('#video').removeAttr('disabled');}
});
$("#video").on("change", function(){
if($.trim($("#video").val())){
$('#vurl').attr("disabled", "disabled");
$('#yurl').attr("disabled", "disabled");
}else{
$('#vurl').removeAttr('disabled');
$('#yurl').removeAttr('disabled');
}
});