- 浏览: 279409 次
- 性别:
- 来自: 东方水城
文章分类
最新评论
-
18335864773:
pageoffice 插件 可以实现 office文档的在线操 ...
Java调用com组件操作word -
coosummer:
推荐使用在线免费bug管理系统- bug 禅思:http:// ...
Bug管理工具 -
program_coco:
柠檬bug管理系统,一个在线的bug管理系统。www.lemo ...
Bug管理工具 -
影非弦:
这个in.read(data);//data是一个byte[] ...
Java串口通信总结 -
影非弦:
这个不详细啊,我弄了一天了,都没弄出来,总是出错,读信息的时候 ...
Java串口通信总结
当select下拉框中没有要选择的信息项时,可以直接在select中输入自己想要得信息项。
在输入信息项时,不改变select下拉框中原有的信息项。
通过Backspace键可以清除刚才输入的信息项,以便重新输入。如果不清除,再输入信息时,会在原来输入的基础之上继续添加信息。如:原来手动输入信息是111,如果不清除再输入222时,信息项就变成111222
<html> <head> <title>可输入的select下拉框</title> </head> <script> </script> <body > <select style='width:150px;z-index:-1' id="aa" name="selectHelpCode" onkeydown="if(event.keyCode == 8){this.options[0].text = '';}" onkeypress="writeSelect(this)"> <option value=""></option> <option value="11">11</option> <option value="22">22</option> <option value="33">33</option> </select> <input type="button" value="点我" onclick="ttt();"/> <script> function writeSelect(obj){ obj.options[0].selected = "select"; obj.options[0].text = obj.options[0].text + String.fromCharCode(event.keyCode); event.returnValue=false; return obj.options[0].text; } function ttt(){ var ss = document.getElementById("aa").value; var jg = ""; if(ss == ""){ var aas = writeSelect(document.getElementById("aa")); jg = aas; }else{ jg = document.getElementById("aa").value; } alert(jg); } </script> </body> </html>
代码只是为了展示select下拉框可输入情况,具体一些细节方面,有待完善。
评论
11 楼
clone168
2009-08-23
<p> </p>
<div class="quote_title">clone168</div>
<div class="quote_div">输入的时候,先触发keydown然后再触发keypress</div>
<p>
所以那个函数执行了两次,也就是不仅仅是IE下的问题了</p>
<div class="quote_title">clone168</div>
<div class="quote_div">输入的时候,先触发keydown然后再触发keypress</div>
<p>
所以那个函数执行了两次,也就是不仅仅是IE下的问题了</p>
10 楼
jianguang_qq
2009-08-23
我靠,没看到“ie有输入双字符的问题,修改中。。。”这几个字吗
9 楼
clone168
2009-08-23
<div class="quote_title">jianguang_qq 写道</div>
<div class="quote_div">
<p>再化简下代码:</p>
<pre name="code" class="js"><body >
<select id="select" onkeydown="selectWrite(this,event)" onkeypress="selectWrite(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" id="test" onclick="test();"/>
<script>
function selectWrite(obj,e){
var opt = obj.options[0];
opt.selected = "selected";
if((e.keyCode||e.charCode) =={
opt.text = opt.value = opt.value.substring(0, opt.value.length>0?opt.value.length-1:0);
}else{
opt.text = opt.value += String.fromCharCode(e.charCode||e.keyCode);
}
}
function test(){
alert(document.getElementById("select").value);
}
</script>
</body></pre>
<p> 支持逐个删除。中文支持上还有点问题,有待再优化,ie有输入双字符的问题,修改中。。。</p>
</div>
<p>不过貌似还是存在一点bug,输入的时候存在问题,输入的时候,先触发<span style="">keydown然后再触发keypress</span></p>
<div class="quote_div">
<p>再化简下代码:</p>
<pre name="code" class="js"><body >
<select id="select" onkeydown="selectWrite(this,event)" onkeypress="selectWrite(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" id="test" onclick="test();"/>
<script>
function selectWrite(obj,e){
var opt = obj.options[0];
opt.selected = "selected";
if((e.keyCode||e.charCode) =={
opt.text = opt.value = opt.value.substring(0, opt.value.length>0?opt.value.length-1:0);
}else{
opt.text = opt.value += String.fromCharCode(e.charCode||e.keyCode);
}
}
function test(){
alert(document.getElementById("select").value);
}
</script>
</body></pre>
<p> 支持逐个删除。中文支持上还有点问题,有待再优化,ie有输入双字符的问题,修改中。。。</p>
</div>
<p>不过貌似还是存在一点bug,输入的时候存在问题,输入的时候,先触发<span style="">keydown然后再触发keypress</span></p>
8 楼
clone168
2009-08-23
<div class="quote_title">jianguang_qq 写道</div>
<div class="quote_div">
<div class="quote_title">clone168 写道</div>
<div class="quote_div">
<p>test函数不存在,<img src="/images/smiles/icon_wink.gif" alt=""></p>
<p>清除的那个函数在IE中只是把text清除了,点击按钮弹出的还是value,还是会显示出来</p>
<p>而在firefox中则出现了连text都不会清除的情况,而且,把select下拉的时候还能看到里面新增了乱码</p>
</div>
<p><br>你回复的真快,我正在修改呢。请再看上面修改后的。</p>
</div>
<p>嗯,呵呵,我正在看你的最新版,不错<img src="/images/smiles/icon_idea.gif" alt=""></p>
<div class="quote_div">
<div class="quote_title">clone168 写道</div>
<div class="quote_div">
<p>test函数不存在,<img src="/images/smiles/icon_wink.gif" alt=""></p>
<p>清除的那个函数在IE中只是把text清除了,点击按钮弹出的还是value,还是会显示出来</p>
<p>而在firefox中则出现了连text都不会清除的情况,而且,把select下拉的时候还能看到里面新增了乱码</p>
</div>
<p><br>你回复的真快,我正在修改呢。请再看上面修改后的。</p>
</div>
<p>嗯,呵呵,我正在看你的最新版,不错<img src="/images/smiles/icon_idea.gif" alt=""></p>
7 楼
jianguang_qq
2009-08-23
<div class="quote_title">clone168 写道</div>
<div class="quote_div">
<p>test函数不存在,<img src="/images/smiles/icon_wink.gif" alt=""></p>
<p>清除的那个函数在IE中只是把text清除了,点击按钮弹出的还是value,还是会显示出来</p>
<p>而在firefox中则出现了连text都不会清除的情况,而且,把select下拉的时候还能看到里面新增了乱码</p>
</div>
<p><br>你回复的真快,我正在修改呢。请再看上面修改后的。</p>
<div class="quote_div">
<p>test函数不存在,<img src="/images/smiles/icon_wink.gif" alt=""></p>
<p>清除的那个函数在IE中只是把text清除了,点击按钮弹出的还是value,还是会显示出来</p>
<p>而在firefox中则出现了连text都不会清除的情况,而且,把select下拉的时候还能看到里面新增了乱码</p>
</div>
<p><br>你回复的真快,我正在修改呢。请再看上面修改后的。</p>
6 楼
clone168
2009-08-23
<div class="quote_title">jianguang_qq 写道</div>
<div class="quote_div">
<p>再化简下代码:</p>
<pre name="code" class="js"><select style='width:150px;z-index:-1' id="aa" name="selectHelpCode" onkeydown="if(event.keyCode =={this.options[0].text = '';}" onkeypress="writeSelect(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" id="test" onclick="test();"/>
<script>
function writeSelect(obj,e){
opt = obj.options[0];
opt.selected = "selected";
opt.text = opt.value += String.fromCharCode(e.charCode||e.keyCode);
}
function ttt(){
alert(document.getElementById("aa").value);
}
</script></pre>
<p> 只优化了两个函数实现,命名、html等我就不优化了,知道lz也是为了测试随便写的</p>
</div>
<p>test函数不存在,<img src="/images/smiles/icon_wink.gif" alt=""></p>
<p>清除的那个函数在IE中只是把text清除了,点击按钮弹出的还是value,还是会显示出来</p>
<p>而在firefox中则出现了连text都不会清除的情况,而且,把select下拉的时候还能看到里面新增了乱码</p>
<div class="quote_div">
<p>再化简下代码:</p>
<pre name="code" class="js"><select style='width:150px;z-index:-1' id="aa" name="selectHelpCode" onkeydown="if(event.keyCode =={this.options[0].text = '';}" onkeypress="writeSelect(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" id="test" onclick="test();"/>
<script>
function writeSelect(obj,e){
opt = obj.options[0];
opt.selected = "selected";
opt.text = opt.value += String.fromCharCode(e.charCode||e.keyCode);
}
function ttt(){
alert(document.getElementById("aa").value);
}
</script></pre>
<p> 只优化了两个函数实现,命名、html等我就不优化了,知道lz也是为了测试随便写的</p>
</div>
<p>test函数不存在,<img src="/images/smiles/icon_wink.gif" alt=""></p>
<p>清除的那个函数在IE中只是把text清除了,点击按钮弹出的还是value,还是会显示出来</p>
<p>而在firefox中则出现了连text都不会清除的情况,而且,把select下拉的时候还能看到里面新增了乱码</p>
5 楼
clone168
2009-08-23
<p>
</p>
<pre name="code" class="html"><select style='width:150px;z-index:-1' id="aa" name="selectHelpCode" onkeydown="clearOption(this,event)" onkeypress="writeSelect(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" onclick="ttt();"/></pre>
<pre name="code" class="js">function clearOption(obj,e){
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
if(currKey =={
obj.options[0].text = "";
}
}
function writeSelect(obj,e){
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
obj.options[0].selected = "select";
if(currKey !={//这个地方是为了避免在firefox又出现令人厌烦的乱码,可以试试注释这句话,看看在firefox的效果
obj.options[0].text = obj.options[0].text + String.fromCharCode(currKey);
}
e.returnValue=false;
return obj.options[0].text;
}
function ttt(){
var jg = document.getElementById("aa").options[document.getElementById("aa").selectedIndex].text;
//当然也可以在前面的writeSelect函数里面同时设置options的value,这样的话,直接可以在该程序里面用value取出
alert(jg);
}
</pre>
<p>
仅仅是在原来的基础上修改,包括命名都没有考虑,甚至函数的个数都没有改变<img src="/images/smiles/icon_biggrin.gif" alt=""></p>
<p> 当然这里还可以优化,两个函数有一部分是相同的,其实可以再封装一次,方便以后调用,楼主可以试试,呵呵</p>
</p>
<pre name="code" class="html"><select style='width:150px;z-index:-1' id="aa" name="selectHelpCode" onkeydown="clearOption(this,event)" onkeypress="writeSelect(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" onclick="ttt();"/></pre>
<pre name="code" class="js">function clearOption(obj,e){
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
if(currKey =={
obj.options[0].text = "";
}
}
function writeSelect(obj,e){
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
obj.options[0].selected = "select";
if(currKey !={//这个地方是为了避免在firefox又出现令人厌烦的乱码,可以试试注释这句话,看看在firefox的效果
obj.options[0].text = obj.options[0].text + String.fromCharCode(currKey);
}
e.returnValue=false;
return obj.options[0].text;
}
function ttt(){
var jg = document.getElementById("aa").options[document.getElementById("aa").selectedIndex].text;
//当然也可以在前面的writeSelect函数里面同时设置options的value,这样的话,直接可以在该程序里面用value取出
alert(jg);
}
</pre>
<p>
仅仅是在原来的基础上修改,包括命名都没有考虑,甚至函数的个数都没有改变<img src="/images/smiles/icon_biggrin.gif" alt=""></p>
<p> 当然这里还可以优化,两个函数有一部分是相同的,其实可以再封装一次,方便以后调用,楼主可以试试,呵呵</p>
4 楼
jianguang_qq
2009-08-23
<p>再化简下代码:</p>
<pre name="code" class="js"><select id="select" onkeydown="Select.del(this,event)" onkeypress="Select.write(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" id="test" onclick="test();"/>
<script>
var Select = {
del : function(obj,e){
if((e.keyCode||e.which||e.charCode) =={
var opt = obj.options[0];
opt.text = opt.value = opt.value.substring(0, opt.value.length>0?opt.value.length-1:0);
}
},
write : function(obj,e){
if((e.keyCode||e.which||e.charCode) ==return ;
var opt = obj.options[0];
opt.selected = "selected";
opt.text = opt.value += String.fromCharCode(e.charCode||e.which||e.keyCode);
}
}
function test(){
alert(document.getElementById("select").value);
}
</script></pre>
<p> 支持逐个删除。ff中文支持上还有点问题,有待再优化。</p>
<p> </p>
<p>该死的ie 和ff事件兼容性问题。</p>
<p>楼主例子很不错,让我在优化过程中学到了,好些东西。一会儿总结一下。</p>
<pre name="code" class="js"><select id="select" onkeydown="Select.del(this,event)" onkeypress="Select.write(this,event)">
<option value=""></option>
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
</select>
<input type="button" value="点我" id="test" onclick="test();"/>
<script>
var Select = {
del : function(obj,e){
if((e.keyCode||e.which||e.charCode) =={
var opt = obj.options[0];
opt.text = opt.value = opt.value.substring(0, opt.value.length>0?opt.value.length-1:0);
}
},
write : function(obj,e){
if((e.keyCode||e.which||e.charCode) ==return ;
var opt = obj.options[0];
opt.selected = "selected";
opt.text = opt.value += String.fromCharCode(e.charCode||e.which||e.keyCode);
}
}
function test(){
alert(document.getElementById("select").value);
}
</script></pre>
<p> 支持逐个删除。ff中文支持上还有点问题,有待再优化。</p>
<p> </p>
<p>该死的ie 和ff事件兼容性问题。</p>
<p>楼主例子很不错,让我在优化过程中学到了,好些东西。一会儿总结一下。</p>
3 楼
jianguang_qq
2009-08-23
作者创意不错,赞一个 !!!
onkeypress="writeSelect(this)" 改成 onkeypress="writeSelect(this,event)";
function writeSelect(obj) 改成 function writeSelect(obj,event)
String.fromCharCode(event.keyCode) 改成 String.fromCharCode(event.charCode||event.keyCode)
就支持ff了。
可惜ff下不支持中文,囧,去查查原因。
onkeypress="writeSelect(this)" 改成 onkeypress="writeSelect(this,event)";
function writeSelect(obj) 改成 function writeSelect(obj,event)
String.fromCharCode(event.keyCode) 改成 String.fromCharCode(event.charCode||event.keyCode)
就支持ff了。
可惜ff下不支持中文,囧,去查查原因。
2 楼
clone168
2009-08-23
又是一个不支持firefox的程序~~~
1 楼
fhyfufangyu
2009-07-27
backspace 没有用啊?
发表评论
-
Highcharts使用指南
2013-08-29 10:49 1362摘要 Highcharts图表控件是目前使用最为广泛的图 ... -
JS多级联动
2010-11-22 10:02 1236<!DOCTYPE HTML PUBLIC " ... -
window.open()代替window.showModalDialog()问题
2009-11-25 10:15 2671最近在做一个项目,需要用到弹出一个子窗口(sub. ... -
JavaScript EE:在服务器端运行JavaScript文件
2009-01-15 16:13 1411本系列文章围绕的主旨是了解如何在 Ajax 和 ... -
悟透JavaScript(结)
2008-12-18 11:09 865原型扩展 想必 ... -
悟透JavaScript(续)
2008-12-18 11:07 901构造对象 好了,接下我们来讨论一下对象的另一种创 ... -
悟透JavaScript
2008-12-18 11:06 846引子 编程世界里只存在两种基本元素,一个是数 ... -
你不知道的 JavaScript - “this”
2008-12-18 11:03 895JavaScript 里的 this 到底指得是什么?很多 ... -
JS日期操作
2008-12-18 10:17 1559时间对象是一个我们经常要用到的对象,无论是做时间输出、时间判断 ... -
event.keycode值大全
2008-12-17 17:29 5357event.keycode值大全,方便自己和大家以后查阅: ... -
document.createElement("input")动态创建html元素时checkbox
2008-12-17 17:27 3872最近研究createElement的时候发现一个奇怪的问题 ... -
Js对中文字符串加密
2008-12-17 14:00 2253function urlencode(text) { ... -
JavaScript的document和window对象详解
2008-12-17 13:53 1284[document对象 ] 该对 ... -
简单js分页效果
2008-12-17 13:41 2742写了这个js让我彻底喜欢上全局变量,在这个例子中所有的内容都是 ... -
JS实现图片切割效果(带拖放、缩放效果)
2008-12-16 14:40 3125<!DOCTYPE html PUBLIC " ... -
JS + DIV ===> 精美alert提示框
2008-12-16 14:32 5397如果*.js出现乱码现象,可以把该*.js文件用记事本打开,然 ...
相关推荐
下拉框选择已有固定value,也可以选择后进行编辑,也可以直接输入数值。
这就是"select下拉框添加搜索功能"这个知识点的核心所在。 在`select`下拉框中实现搜索功能,一般有两种常见方法:一种是原生HTML和JavaScript的实现,另一种是借助第三方库,如本例中的`jquery.editable-select`。...
在网页开发中,"可文本输入的下拉框select"是一种常见的交互元素,它结合了传统的HTML `<select>` 下拉菜单和自由文本输入的功能。这种设计可以为用户提供更灵活的选择方式,既可以快速从预设选项中选取,也可以手动...
### 可编辑Select下拉框实现方法 #### 一、引言 在现代Web开发中,用户界面(UI)的设计对于提升用户体验至关重要。一个常见的需求是实现一个可编辑的`<select>`下拉框,即允许用户不仅能从下拉列表中选择选项,还...
"可输入的下拉框"是一种常见的交互元素,它结合了传统下拉菜单与搜索输入框的功能,使得用户在选择选项时可以更加高效和精确。这种设计常见于网页和应用程序中,用于提供多样化的选择并允许用户通过输入关键词快速...
在这种情况下,“asp.net可输入可选择下拉框”应运而生,它结合了文本框和下拉框的优点,提供了更灵活的交互体验。 首先,我们需要理解这个自定义用户控件的工作原理。通常,它是通过JavaScript或者jQuery在客户端...
带搜索功能的select下拉框,类似百度google的搜索框,自己匹配,很好用
在某些场景下,我们需要动态地填充select下拉框的选项值,以实现更灵活的数据输入。本篇文章将详细探讨如何在jQGrid中实现这一功能。 首先,理解`select`下拉框的基本概念。在HTML中,`<select>`元素用于创建一个...
在JavaScript和jQuery的世界里,"js 可输入下拉框(jquery)"是一个常见的交互设计需求,它结合了传统下拉框的简洁性与输入框的搜索功能,为用户提供更友好的交互体验。这种组件通常被称为“Autocomplete”或...
在网页设计中,"select下拉框可编辑输入框"是一种常见的交互元素,它结合了传统的HTML `<select>` 元素和输入框的功能,让用户在下拉选项中选择的同时,也能自由输入其他值。这样的设计增加了用户体验的灵活性,特别...
在“bootstrap select 下拉框通过拼音搜索汉字”这个实例中,我们关注的重点是如何利用该插件实现通过输入拼音来搜索并筛选汉字的功能,这对于中文环境下的用户体验提升有着显著的作用。 首先,我们要了解Bootstrap...
首先,理解`select`下拉框在HTML中的基本结构,它由`<select>`标签定义,内部包含一系列`<option>`标签,每个`<option>`代表一个可选的值和显示文本: ```html <select> <option value="value1">Text1 ...
可输入的下拉框通常由HTML的`<select>`元素和`<option>`元素组合而成,但为了实现输入功能,前端开发者会使用JavaScript或者一些现成的库(如Select2、Chosen等)来扩展其功能。当用户在输入框中键入字符时,下拉框...
### JavaScript 操作 Select 下拉框的关键知识点 在 Web 开发中,`<select>` 元素用于创建下拉列表(或选择框)。这些选择框在用户界面中非常常见,可以用来收集用户输入的信息,比如让用户从一系列选项中选择一个...
标题中的“可输入的下拉框(autoComplete)”指的是自动完成或自动填充功能,它在用户界面设计中被广泛使用,特别是在Web表单和移动应用中。这种功能结合了文本输入框和下拉列表,当用户在输入框中键入文字时,系统...
标题中的“可以输入的下拉框(可用于项目的)”是指一种交互式UI组件,它结合了传统下拉框和文本输入框的功能,用户既可以从中选择已有的选项,也可以自行输入新的内容。这种设计在许多Web应用和软件项目中非常常见,...
`jQuery Editable Select`就是这样一个插件,它允许用户在下拉框中直接编辑输入,同时根据输入的内容实时过滤选项,提高了用户在大量数据中的查找效率。 `jQuery Editable Select`插件的工作原理是将标准的`<select...
针对这一情况,"可手写输入的下拉框"提供了一种创新解决方案,允许用户通过手写方式进行输入,增强了交互性和可用性。 这个可手写输入的下拉框设计简洁,代码量小,易于集成到项目中。开发者可以快速实现这一功能,...
传统的HTML `<select>` 标签仅允许用户从预定义的选项中选择,但可输入下拉框允许用户在输入时获取匹配建议,从而提供更灵活、高效的搜索体验。下面我们将深入探讨这种技术的工作原理、实现方式以及其相关的源代码。...