Подтвердить что ты не робот

Как я могу сделать поле ввода только для чтения, но все-таки отправить его обратно в форму?

У меня есть поле ввода:

<input cid="Topic_Created" name="Topic.Created" size="25" type="text" value="6/5/2011 8:22:45 AM" />

Я хочу, чтобы поле отображалось в моей форме, но не хочу, чтобы пользователь мог редактировать поле. Когда пользователь нажимает кнопку "Отправить", я хочу, чтобы значение формы отправлялось обратно на сервер.

Это возможно. Я пробовал разные комбинации disabled = "disabled", readonly = "readonly". Кажется, я всегда ничего не посылаю обратно в поле.

4b9b3361

Ответ 1

Добавление скрытого поля с тем же именем отправит данные при отправке формы.

<input type="hidden" name="my_name" value="blablabla" />
<input type="text" name="my_name" value="blablabla" disabled="disabled" />

Ответ 2

В предположении, что вы используете script для создания формы, я бы предложил использовать <input type="hidden" />, который будет передавать переменную в форме, но также использовать регулярный <input type="text" readonly="readonly" />, чтобы показать эту переменную пользователь. Это не будет представлять значение, очевидно, но сделает его видимым (в то время как вход hidden будет отправлять значение, но не показывать значение).

Вы также можете сделать это с помощью JavaScript:

var theForm = document.getElementsByTagName('form')[0];
var inputs = document.getElementsByTagName('input');

for (i=0; i<inputs.length; i++){
    if(inputs[i].type == 'hidden'){
        var newInput = document.createElement('input');
        newInput.type = 'text';
        newInput.setAttribute('disabled');
        newInput.value = inputs[i].value;
        theForm.appendChild(newInput);
    }
}

Неуклюжая демонстрация JS Fiddle.

Ответ 3

В качестве альтернативы вы можете немного манипулировать с помощью javascript, удалить отключенное свойство до отправки формы

<form action="target.php" method="post">
<input type="text" id="anu" name="anu" value="data anu" disabled="disabled" />
<button onclick="document.getElementById('anu').disabled=''">send</button>

Ответ 4

С браузером Chrome в Windows 10, имеющим name= "ваше_имя", и атрибуты readonly работают нормально: клиент не может изменить значение, но он отправляется на сервер.

Ответ 5

При отправке полей только для чтения вам следует использовать ввод type = "hidden" . В противном случае, если вам все еще нужно, чтобы значение поля ввода было видимым, вы должны создать другой вход (тип = текст) с другим именем.

<input cid="Topic_Created" name="Topic.Created" type="hidden" value="6/5/2011 8:22:45 AM" />
<!--This is visible: -->
<input cid="Topic_Created" name="doesntmatter" size="25" type="text" value="6/5/2011 8:22:45 AM" />