通过用某些东西包装它们来禁用或只读表单元素?

时间:2014-10-31 12:38:25

标签: html css html5 forms

是否可以在HTML表单中将多个输入元素标记为只读或禁用,方法是将它们包装起来?

我知道您可以将表单本身设置为禁用,例如,但这当然会禁用整个表单。我想的是:

<form>

    <input name="not-readonly">

    <div readonly="readonly">
        <input name="readonly-field-1">
        <input name="readonly-field-2">
    </div>

    <input type="submit">
</form>

或者可以用CSS以某种方式解决这个问题?或者只能使用Javascript?

3 个答案:

答案 0 :(得分:1)

我假设您知道如何根据您拥有34k代表的事实以常规方式禁用输入。

<input disabled="disabled" type="text" name="something"/>

当然使用jquery轻松完成(例如基于你的标记)

$('div[readonly="readonly"]').find('input').attr('disabled','disabled');

您实际上无法使用css禁用输入,但您可以使用css伪造禁用的输入:

&#13;
&#13;
.fakeinput {
  padding: 4px;
  font-family: monospace;
  font-size: .8em;
  color: #aaa;
  border: #999 1px solid;
  background: fff;
  border-radius: 1px;
  margin: 5px 0;
  box-shadow: inset 1px 1px 2px #ddd;
}
&#13;
<p class="fakeinput">Pretend Value</p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

的javascript

document.getElementById("myText").disabled = true;

CSS

<INPUT NAME="realname" VALUE="Hi There" readonly>

<INPUT NAME="realname" VALUE="Hi There" disabled>

答案 2 :(得分:0)

刚刚发现您可以使用fieldset标记禁用一组表单元素。但是,它似乎是slightly buggy in certain versions of IE。也不支持readonly属性,遗憾的是我在这种情况下需要的属性......也许它会在以后添加?

<form>

    <input name="not-disabled">

    <fieldset disabled>
        <input name="disabled-field-1">
        <input name="disabled-field-2">
    </fieldset>

    <input type="submit">
</form>