1

如果使用某个文本输入,我需要禁用文件输入。或者,如果使用文件输入,则禁用文本输入。但是,如果最终用户改变主意,那么我希望能够在文本输入为空的情况下启用文件输入,反之亦然。

如果使用文本输入,这可以很好地禁用文件输入。但是,如果我清除文本输入,文件输入仍然禁用:

    $("#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>

我的头的一侧完全秃了,因为我把头发拉出来了。如果有更好的方法,我愿意接受建议......

谢谢...

4

6 回答 6

2

请更改以下代码

$("#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

于 2013-08-23T12:53:43.687 回答
1

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');
  }
});
于 2019-06-11T06:24:32.383 回答
0

为什么不使用长度属性来查看输入是否为空?

例如 :

 $("#linkurl").on('keyup blur', function(e){
    if($(this).val().length == 0){
        $('#link').attr('disabled');
    }else{
        $('#link').removeAttr('disabled');
    }
 });
于 2013-08-23T12:33:34.657 回答
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.

于 2013-08-23T12:45:01.390 回答
0
$("#linkurl").on('keyup blur', function(e){
    if(trim($(this).val())==''){
        $('#link').attr('disabled');
    }else{
        $('#link').removeAttr('disabled');
    }
 });
于 2013-08-23T12:49:09.923 回答
0

试试这个,我认为如果#linkurl中有一些值那么你的if条件也是错误的,那么你想禁用#link否则启用它

$("#linkurl").on('keyup', function(){
        if($.trim($(this).val()).length == 0){
            $('#link').removeAttr('disabled');
         }else{
          $('#link').attr('disabled','disabled');   
        }
    });

http://jsfiddle.net/pfALM/1/

于 2013-08-23T12:54:20.227 回答