Ответ 1
Добавление скрытого поля с тем же именем отправит данные при отправке формы.
<input type="hidden" name="my_name" value="blablabla" />
<input type="text" name="my_name" value="blablabla" disabled="disabled" />
У меня есть поле ввода:
<input cid="Topic_Created" name="Topic.Created" size="25" type="text" value="6/5/2011 8:22:45 AM" />
Я хочу, чтобы поле отображалось в моей форме, но не хочу, чтобы пользователь мог редактировать поле. Когда пользователь нажимает кнопку "Отправить", я хочу, чтобы значение формы отправлялось обратно на сервер.
Это возможно. Я пробовал разные комбинации disabled = "disabled"
, readonly = "readonly"
. Кажется, я всегда ничего не посылаю обратно в поле.
Добавление скрытого поля с тем же именем отправит данные при отправке формы.
<input type="hidden" name="my_name" value="blablabla" />
<input type="text" name="my_name" value="blablabla" disabled="disabled" />
В предположении, что вы используете 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);
}
}
В качестве альтернативы вы можете немного манипулировать с помощью 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>
С браузером Chrome в Windows 10, имеющим name= "ваше_имя", и атрибуты readonly работают нормально: клиент не может изменить значение, но он отправляется на сервер.
При отправке полей только для чтения вам следует использовать ввод 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" />