如何在 jQuery 中将 <select> 标签更改为 <input>
Posted
技术标签:
【中文标题】如何在 jQuery 中将 <select> 标签更改为 <input>【英文标题】:How to change <select> tag into <input> in jQuery 【发布时间】:2011-08-12 05:02:44 【问题描述】:我正在寻找一些 jQuery 代码。
我正在选择
<select id="questionBox" name="questionBox">
<option selected="selected" value="-">------------------------</option>
<option value="Create your own question">Create your own question</option>
<option value="-">------------------------</option>
<option value="What is your mothers name?">What is your mothers name?</option>
<option value="What is your fathers name?">What is your fathers name?</option>
<option value="What is your pet name?">What is your pet name?</option>
</select>
我只想当有人点击“创建你自己的问题”时,这个选择框变成输入框,这样用户就可以轻松定义自己的问题。
请帮我解决这个问题。
谢谢。
【问题讨论】:
按照你的描述去做是个坏主意。如果用户改变主意并想要select
回来怎么办?
好吧,我知道这一点,所以我会添加一个按钮来改回选择标签
【参考方案1】:
显示文本框解决方案
http://jsfiddle.net/2WB6M/
它不会隐藏选择,而是在选择“新建...”时显示一个文本框。原因与 Jon 在他的评论中的相同。
html:
<select id="questionBox" name="questionBox">
<option selected="selected" value="-">------------------------</option>
<option value="Create your own question">Create your own question</option>
<option value="-">------------------------</option>
<option value="What is your mothers name?">What is your mothers name?</option>
<option value="What is your fathers name?">What is your fathers name?</option>
<option value="What is your pet name?">What is your pet name?</option>
</select>
<input type="text" id="newQuestion"/>
$(function()
$('#newQuestion').hide();
$('#questionBox').change(function()
if ($(this).val() === 'Create your own question')
$('#newQuestion').show();
else
$('#newQuestion').hide();
);
);
隐藏选择并创建取消按钮
http://jsfiddle.net/qkhpr/1/
HTML:
<select id="questionBox" name="questionBox">
<option selected="selected" value="-">------------------------</option>
<option value="Create your own question">Create your own question</option>
<option value="-">------------------------</option>
<option value="What is your mothers name?">What is your mothers name?</option>
<option value="What is your fathers name?">What is your fathers name?</option>
<option value="What is your pet name?">What is your pet name?</option>
</select>
<div id="newQuestion">
<input type="text"/>
<button id="cancel">Cancel</button>
</div>
JavaScript:
$(function()
$('#newQuestion').hide();
$('#questionBox').change(function()
if ($(this).val() === 'Create your own question')
$('#newQuestion').show();
$('#questionBox').hide();
);
$('#cancel').click(function ()
$('#questionBox').show();
$('#newQuestion').hide();
);
);
【讨论】:
很好,但您缺少隐藏输入的名称属性以上是关于如何在 jQuery 中将 <select> 标签更改为 <input>的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jQuery DataTable 中将列数据作为超链接
如何在 jQuery Mobile ListView 中将标题移动到顶部
如何在 Javascript 或 jQuery 中将标签包装在评论中 [重复]
如何在 jQuery 移动多页模板结构中将第二页显示为默认页面?
jQuery $.ajax(), $.post 在 Firefox 中将“OPTIONS”作为 REQUEST_METHOD 发送