2017-01-19 6 views
0

Я пытаюсь включить текстовое поле, когда установлен флажок, и моя кодировка работает так, как я хочу. Когда кнопка отправки нажата, она проверит всю форму и предоставит информацию об ошибках для каждого пустого поля, которое не было заполнено, и сохраните остальную информацию в каждом заполненном поле. Проблема в том, что, когда флажок установлен, текстовое поле включено и заполнено после нажатия кнопки отправки (когда все необходимое поле не завершено), текстовое поле отключится со значением, оставшимся.Включить текстовое поле, когда флажок установлен - php

Ниже кодирование, что я в настоящее время использую:

<input type="checkbox" name="chklist" onchange="document.getElementById('txtOthers').disabled = !this.checked;" <?php if(isset($_POST['btnSubmit']) && isset($_POST['chklist'])) echo "checked" ?> /> OTHERS : 
    <input style="width: 130px;" type="textbox" id="txtOthers" name="txtOthers" disabled value="<?php echo $others;?>" /> 
+0

Что JavaScript вы написали до сих пор выполнить эти вещи? – wogsland

+0

Пожалуйста, покажите javascript/jquery-код, который вы используете, трудно угадать с текущей информацией. –

+0

@wogsland Я только положил 'onchange = 'document.getElementById (' txtOthers '). Disabled =! This.checked;" 'в 'checkbox', чтобы включить и отключить« текстовое поле » –

ответ

0

Вы можете использовать JQuery сделать так:

<input type="checkbox" name="chklist" id="checkbox" <?php if(isset($_POST['btnSubmit']) && isset($_POST['chklist'])) echo "checked" ?> /> OTHERS : 
<input style="width: 130px;" type="textbox" id="txtOthers" name="txtOthers" disabled value="<?php echo $others;?>" /> 

$(document).ready(function(){ 
    $("#checkbox").change(function(){ 
     if ($('input.checkbox_check').is(':checked')) { 
      $(#txtOthers).show(); 
     }else{ 
      $(#txtOthers).hide(); 
     } 
    }); 
    $("form").submit(function() { 
     $("#txtOthers").prop('disabled', true); 
    }); 
}); 
+0

привет, спасибо за ответ. Я попробовал и все тот же результат. Вся страница на самом деле обновляется при нажатии кнопки отправки, поэтому она снова отключит 'textbox'. Есть ли способ, которым я могу сделать что-то вроде 'if (isset ($ _ POST ['chklist'])) {// Сделайте что-то, чтобы включить текстовое поле}' –

+0

вы можете добавить еще одну вещь, отправьте форму через jQuery.ajax. это позволит избежать обновления страницы. $ ("# отправить") нажмите (функция() { $ .ajax ({ типа:. "POST", URL: "ajaxsubmit.php", данные: dataString, кэш: ложь, успех: функция (результат) { // делать ваши вещи после формы submit }} }) –

+0

удалить этот код: $ ("form"). submit (function() { $ ("# txtOthers"). prop ('disabled', true); }); –

Смежные вопросы