2013-08-23 4 views
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> 

Одна сторона моей головы полностью лысая, вытягивая мои волосы из-за этого. Я открыт для предложений, если есть лучший способ ...

Спасибо ...

+2

показать ваш html-код –

+1

или дать нам [jsfiddle] (http://jsfiddle.net) для работы с! – soyuka

ответ

0

Пожалуйста, измените следующий код

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

+0

И, чтобы отключить ввод текста, если используется входной файл, я бы просто использовал тот же код и переключал идентификаторы? –

+0

Я меняю свой код, пожалуйста, проверьте это и сообщите мне, что это правильно или нет. – Chinmay235

+0

Отлично! Большое спасибо! –

0

Почему вы не используете длину proprety, чтобы увидеть, если вход пуст?

Например:

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

Мне нужно отключить ввод текста, если используется входной файл. В противном случае валидация формы сработает на пустой ввод текста. Затем, если вы дадите текстовому вводу значение для передачи проверки, вход файла отключен. Волосы на другой стороне головы почти исчезли сейчас ... –

+0

Показать код html, может быть, я помогу вам немного больше. – soyuka

+0

Исходное сообщение отредактировано, чтобы включить HTML ... –

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.

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

Попробуйте это, я думаю, что ваше состояние, если же неправильно, если существует некоторое значение в #linkurl, то вы хотите, чтобы отключить #link else включить его право

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

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

+0

Может быть, клавиатура или размытие не путь? –

+0

Да, если вы привязаетесь только к клавиатуре, вы увидите, что поле ввода файла включено и отключено, как только содержимое изменится. Надеюсь, что это поможет. – Farhan