我输入的类型编号如此
<input type="number" class="number" min="0" max="999999" value="0" id="id">
当我使用此代码时
$("#id").val();
如果它的数字如1
则返回数字
但如果不是1+1
这样的数字,则返回空字符串""
我可以通过类型编号获得实际值,或者我必须更改为文本才能这样做
我用chrome和firefox测试它
我知道它适用于文字类型
但我希望更快的解决方案,如果有非然后我会将其更改为文本并重写代码
这是我的问题 现在,当我使用jquery将类型更改为文本时,删除值可以更改它而不删除值吗?
$('#id').attr('type','text')
我想要做的是让类型文本获取值并将其返回到数字
答案 0 :(得分:2)
您无法使用<input type='number'/>
,
<input type="number" >
会指望你输入一个数字,所以如果你输入1+1
之类的东西,它就不会被认为是一个数字,所以返回一个空字符串&#34;&#34;。< / p>
您可以使用<input type=text/>
请参阅此fiddle
$('input').on('change', function() {
var strVal = $("#id").val();
var intVal = eval(strVal);
alert(intVal);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="number" value="0" id="id">
&#13;
修改强>
如果你不能改变整个html,你可以使用jquery改变元素的类型,
$('input[type=number]').attr('type','text')
将其放在页面加载
上答案 1 :(得分:1)
如果有人需要 input type="number"
,那是有原因的。
前提:我不是提出最初问题的罗伯特 :-)
但是……
无论如何,我和提出最初问题(命运问题?)的罗伯特完全一样
进行更深入的研究,我找到了这个答案 JavaScript get clipboard data on paste event (Cross browser)
我两次喜欢它,因为它是纯原生 JavaScript
我用 input type = "number"
编写了这段代码,它的作用就像一个魅力
主要行为是因为我想要 input type = "number"
是这种输入类型,当专注于移动时会打开数字键盘而不是字母键盘。这里输入驱动,只能按数字和破折号
但是在我的应用程序中,他们可以粘贴数字..所以检查粘贴事件是一个合乎逻辑的结果
试试
function handlePaste (e) {
var clipboardData, pastedData;
// Stop data actually being pasted into div
e.stopPropagation();
e.preventDefault();
// Get pasted data via clipboard API
clipboardData = e.clipboardData || window.clipboardData;
pastedData = clipboardData.getData('Text');
// Do whatever with pasteddata
alert(pastedData);
}
document.getElementById('myInput').addEventListener('paste', handlePaste);
<p>This example uses the addEventListener() method to attach a "paste" event to an input type="number" element. Paste some text in the input...</p>
<input type="number" id="myInput" value="Try to paste something in here" size="40">
答案 2 :(得分:0)
确定解决问题的方法
$('input[type=number]').each(function(){
var val = $(this).val();
$(this).attr('type','text');
$(this).val(val);
});
上面的代码适用于所有类型为number的输入。如果您只想在第一行中使用一个use class或id。如果你想从1 + 1这样的字符串中计算值,你可以在try catch块中使用eval。但这通常是一个更复杂的解决方案。