当前位置: 首页 > 面试题库 >

HTML表单只读SELECT标记/输入

夏侯华彩
2023-03-14
问题内容

根据HTML规范,selectHTML中的标记没有readonly属性,只有disabled属性。因此,如果要阻止用户更改下拉菜单,则必须使用disabled

唯一的问题是禁用的HTML表单输入不会包含在POST / GET数据中。

模拟标签readonly属性select并仍然获取POST数据的最佳方法是什么?


问题答案:

您应该保留该select元素,disabled但还要添加另一个input具有相同名称和值的隐藏元素。

如果重新启用SELECT,则应在onchange事件中将其值复制到隐藏输入并禁用(或删除)隐藏输入。

这是一个演示:

$('#mainform').submit(function() {

    $('#formdata_container').show();

    $('#formdata').html($(this).serialize());

    return false;

});



$('#enableselect').click(function() {

    $('#mainform input[name=animal]')

        .attr("disabled", true);



    $('#animal-select')

        .attr('disabled', false)

        .attr('name', 'animal');



    $('#enableselect').hide();

    return false;

});


#formdata_container {

    padding: 10px;

}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>

    <form id="mainform">

        <select id="animal-select" disabled="true">

            <option value="cat" selected>Cat</option>

            <option value="dog">Dog</option>

            <option value="hamster">Hamster</option>

        </select>

        <input type="hidden" name="animal" value="cat"/>

        <button id="enableselect">Enable</button>



        <select name="color">

            <option value="blue" selected>Blue</option>

            <option value="green">Green</option>

            <option value="red">Red</option>

        </select>



        <input type="submit"/>

    </form>

</div>



<div id="formdata_container" style="display:none">

    <div>Submitted data:</div>

    <div id="formdata">

    </div>

</div>


 类似资料:
  • 什么是正确的方法来删除只有HTML标签(保留所有自定义/未知的标签)与JSOUP(不是正则表达式)? 预期输入: 预期产出: 我尝试使用白名单清洁剂。none(),但它也会删除自定义标记。 我也尝试过: 但是它也删除了自定义标签。 这个答案对我不好,因为自定义标记的数量是无限的。

  • 我有以下标签,它们工作得很好 它们位于form:form标签中。页面加载良好。 有什么想法吗?谢谢

  • 我用一个简单的WebView做了一个应用程序;当我从我的webview打开“search.php”页面时,我触摸html select从不同类型的单词中进行选择…但是.休斯顿!我们有麻烦了!:d当我在输入字段中写出我需要的东西时,它是正常的,但是当我触摸(只触摸)选择字段来选择我需要的东西时(我可以选择几种本地类型,比如:酒吧、迪斯科、餐厅…等等…)我的应用崩溃了!我在问为什么?如果我把相同的ht

  • 问题内容: 我有这样的表格 我想要的$ _POST输出是一个像 我知道我可以做类似name =“ levels [1] [build_time]”之类的事情,但是由于这些元素是动态添加的,因此很难添加索引。还有其他办法吗? 编辑: 按照建议,我更改了表格。我现在也包含了我的整个HTML,因为我认为这里缺少一些内容。我的HTML现在: 我现在得到的输出是: 编辑2: 根据您的编辑建议,我编辑了表单并

  • 问题内容: 我如何才能使mysql中的单个表对某个用户只读,而该用户仍具有对同一数据库中其他表的写访问权? 附加信息 我有权访问服务器 表是MyISAM 服务器版本为5.0.51a-24 + lenny2 谢谢! 问题答案: 撤销所有先前的特权,然后授予特定的新特权:

  • 我想验证输入的代码是否是HTML代码(必须以<代码> 我试着这么做 但是我有一个问题需要在代码中做一个\n,我需要验证第一个和结束标签(=