jquery 改变输入类型

标签 jquery input types jquery-mobile

我有一个输入字段,我想在使用 Jquery Mobile 制作的移动设备和桌面设备上使用。

这是一个数量选择器字段,因此根据输入类型,用户只需输入数字或单击增量到 1、2、3...他想要的数字。

问题: 有没有办法通过按钮将输入类型=“按钮”切换为输入类型=“文本”?

类似这样的事情:

$('.switchInputType').click(function () {
  $(this).val() == "click" ? go_type() : go_click();
});
function go_type() {
  $('.switchInputType').val('type');
  $('.inputElement').attr('type', 'text');
}
function go_click() {
  $('.switchInputType').val('click');                                      
  $('.inputElement').attr('type', 'button'); 
}

这行不通?我正在寻找其他想法如何实现这一目标?

是否有可能篡改 JQM 生成的 HTML,如

<input type="button" value="clickMe" />

在 JQM 中看起来像这样:

<div class="ui-btn ui-btn-inline ui-btn-corner-all ui-shadow ui-btn-up-c" 
data-theme="c"  aria-disabled="false">
   <span class="ui-btn-inner ui-btn-corner-all">
       <span class="ui-btn-text">clickMe</span> 
   </span>
   <input class="inputElement ui-btn-hidden" type="button" value="clickMe"
    aria-disabled="false" />
</div>

感谢您的想法!

<小时/>

这里是在 Jquery Mobile 中切换输入的完整代码:

$('.switchInputType').click(function () {
  $(this).val() == "click" ? go_type() : go_click();
});
function go_type() {
 $('.switchInputType').val('type');
 $('.switchInputType').prev('span').html('<span class="ui-btn-text">type</span><span class="ui-icon ui-icon-finger ui-icon-shadow"></span>');
 $('.inputElement').each(function(index) {
    $(this).parent('div').replaceWith('<input type="text" value="'+this.value+'" 
    name="'+this.name+'" id="'+this.id+'" value="'+this.value+'" class="inputElement
    ui-input-text ui-body-null ui-corner-all ui-shadow-inset ui-body-c" />');
    });
 }
 function go_click() {
   $('.switchInputType').val('click');
   $('.switchInputType').prev('span').html('<span class="ui-btn-text">click</span><span
   class="ui-icon ui-icon-finger ui-icon-shadow"></span>');
   $('.inputElement').each(function(index) {
      $(this).replaceWith('<div class="ui-btn ui-btn-inline ui-btn-corner-all ui-shadow 
      ui-btn-up-c" data-theme="c" aria-disabled="false"><span class="ui-btn-inner ui-btn-
      corner-all"><span class="ui-btn-text">'+this.value+'</span></span><input 
      type="button" value="'+this.value+'" name="'+this.name+'" id="'+this.id+'" 
      value="'+this.value+'" class="inputElement ui-btn-hidden" data-inline="true" 
      aria-disabled="false" /></div>');
      });
  }

最佳答案

无法更改类型,因为它是只读的。你可以做的是这样的:

JSFIDDLE

$('.clicker').bind('click', function() {
    $(this).replaceWith('<input type="text" value="'+this.value+'" id="'+this.id+'">');
}); 

关于jquery 改变输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5993210/

相关文章:

javascript - 使用 jQuery、CSS 或两者来扩展 DIV 解决方案?

javascript - jQuery - $.ajax 返回其他 dataFormat 作为 $post

c - 如何动态获取整数输入并让循环在按回车键时终止?

c - 为什么输入一个字符后 getchar 会等待?

.net - 忽略传递给 Type.GetType() 的程序集限定名称中的版本

javascript - 使用 jQuery 单击时从 <UL> 中删除 <LI>

javascript - js/jquery 函数调用顺序未反射(reflect)在结果中

java - 如何检查鼠标是否被压出 JFrame

java - 是否可以在运行时检索用于类型标记的泛型类型(即 Class<T>)?

c++ - C++ 数据类型后的符号 '^' 是什么意思?