$('input#not-gonna-work').bind({
keyup: function(){
console.log('Typed a key');
$(this).val($(this).val() + '.');// try with any other char
},
change: function(){
console.log('I\'m a changed input');
}
});
Run Code Online (Sandbox Code Playgroud)
我在这个简化的jsfiddle示例中暂存了这个bug .与此错误相关的问题是我有一个正在构建的财务应用程序,如果输入数据发生更改,我需要显示"保存更改"按钮.因为我需要立即插入千位分隔符keyup(如果需要),这个错误真的让我烦恼并破坏了这个功能.
要重现它,请转到jsfiddle示例,在第一次输入中打开chrome类型的任何东西,keyup事件将被正确触发,而不是使用制表符或在其外部单击的非焦点输入,并且change不会触发事件.对其他输入执行相同操作change并将被触发.
我在Firefox中对它进行了测试,它按预期工作.
我正在使用的Chromium版本是14.0.835.202(Developer Build 103287 Linux)Ubuntu 11.10
和
尝试直接从Chrome网站新安装的Google Chrome 15.0.874.106.
我可以在change事件中插入分隔符,但由于用户将输入许多7位以上的数字,因此在键入时插入分隔符会更好.
我没有在iPhone上测试这个代码,但我确信(测试过)它在Android手机上不起作用:
$('#search').live('keyup',function(key){
if(key.which == 13){
/*ANIMATE SEARCH*/
_key = $(this).val();
$("#wrapper").html("");
$('#wrapper').hide(0).load('results.html').fadeIn(800);
$('#search-fade').val(_key).fadeIn();
}
});
Run Code Online (Sandbox Code Playgroud)
更好地解释:
我有一个简单的
<input type="text" name="search" id="search"/>
Run Code Online (Sandbox Code Playgroud)
不知道为什么,但这个代码在Android手机上无法正常工作
有任何想法吗?
我的HTML文件:
<html>
<head>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<title>
Login
</title>
</head>
<body>
<div class=loginForm>
<p>Worker-ID:<input type=text id=workerID name=workerID /></p>
<p>Password:<input type=password id=workerPassword name=workerPassword /></p>
<input type=submit id=submitLogin name=submitLogin value="Log in"/>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的scripts.js:
$('#workerID').keyup(function() {
alert('key up');
);
Run Code Online (Sandbox Code Playgroud)
它根本不起作用.我尝试了所有空间,一个字母,数字.警报未显示.哪里出错了?
我有一个Angular2指令的问题,应该执行以下操作:
我有上述工作,但是,当与ngModel结合使用时,每次更新模型时光标位置都会跳到最后.
输入:
<input type="text" name="test" [(ngModel)]="testInput" testDirective/>
Run Code Online (Sandbox Code Playgroud)
指令:
import {Directive, ElementRef, Renderer, HostListener, Output, EventEmitter} from '@angular/core';
@Directive({
selector: '[testDirective][ngModel]'
})
export class TestDirective {
@Output() ngModelChange: EventEmitter<any> = new EventEmitter();
constructor(private el: ElementRef,
private render: Renderer) { }
@HostListener('keyup', ['$event']) onInputChange(event) {
// get position
let pos = this.el.nativeElement.selectionStart;
let val = this.el.nativeElement.value;
// if key is '.' and next character is '.', skip position
if (event.key === '.' &&
val.charAt(pos) === '.') …Run Code Online (Sandbox Code Playgroud) 我有这个jQuery代码:
var char = 60;
$("#counter").append("You have <strong>" + char + "</strong> char.");
$("#StatusEntry").keyup(function () {
if ($(this).val().length > char) {
$(this).val($(this).val().substr(0, char));
}
var rest = char - $(this).val().length;
$("#counter").html("You have <strong>" + rest + "</strong> char.");
if (rest <= 10) {
$("#counter").css("color", "#ff7777");
}
else {
$("#counter").css("color", "#111111");
}
});
Run Code Online (Sandbox Code Playgroud)
它工作正常!但如果相反,val()我有text()它不起作用.
问题是,在可用的char结束时,它开始从一开始就替换文本......使用val是完美的.
为什么我需要它在文本上?因为我正在使用一个所见即所得的插件,它将我的textarea转换为div.
我正在尝试.stopPropagation但它不起作用..尝试返回false而没有...
希望对你有所帮助!
EDITED
感谢所有提供支持的人...我将与您分享的最佳工作脚本,希望我能帮助其他寻求相同解决方案的人:
$(document).ready(function(){
$("#price1, #price2").keyup(function() {
var priceOne = parseFloat($("#price1").val());
var priceTwo = parseFloat($("#price2").val());
var rate = parseFloat($("#rate").val());
if ($("#price1").val() && $("#price2").val()){
$('#rate').val(((priceTwo - priceOne) / priceOne * 100).toFixed(2));
}
});
$("#rate").keyup(function() {
var priceOne = parseFloat($("#price1").val());
var rate = parseFloat($("#rate").val());
if ($("#rate").val() && $("#price1").val() && $("#price2").val()){
$('#price2').val(((priceOne * rate)/ 100 + priceOne).toFixed(2));
}
});
})
Run Code Online (Sandbox Code Playgroud)
您也可以在此链接后进行测试
初步问题:
请帮助计算两个数字之间的百分比.我试过一种方法,但我没有成功.请告诉我有什么问题,或者如果你能推荐其他可以帮助我的脚本,我将不胜感激
我的剧本:
<html>
<head>
<script type="text/javascript">
$("#rate").text(function() {
var result = (parseInt(($("#price1").text(), 10) * 100)/ parseInt($("#price2").text(), 10));
if (!isFinite(result)) result …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个C#应用程序,它将控制游戏.我试图做的是例如:按住A键150ms,按住左箭头500ms,依此类推.我经常搜索,我发现了以下代码.我的程序首先瞄准游戏,然后拿着钥匙.
I'm holding the keys this way:
Keyboard.HoldKey(Keys.Left);
Thread.sleep(500);
Keyboard.ReleaseKey(Keys.Left);
Run Code Online (Sandbox Code Playgroud)
这是Keyboard类:
public class Keyboard
{
public Keyboard()
{
}
[StructLayout(LayoutKind.Explicit, Size = 28)]
public struct Input
{
[FieldOffset(0)]
public uint type;
[FieldOffset(4)]
public KeyboardInput ki;
}
public struct KeyboardInput
{
public ushort wVk;
public ushort wScan;
public uint dwFlags;
public long time;
public uint dwExtraInfo;
}
const int KEYEVENTF_KEYUP = 0x0002;
const int INPUT_KEYBOARD = 1;
[DllImport("user32.dll")]
public static extern int SendInput(uint cInputs, ref Input inputs, int cbSize);
[DllImport("user32.dll")]
static …Run Code Online (Sandbox Code Playgroud) 我有一个文本字段,它只接受以下字符:
允许的字符:[az 0-9 +# - .]
这是相同的过滤器SO确实在"标签"字段,当你问一个问题.如果用户键入无效字符,我希望当前文本字段值保持不变.我试过了:
$('#post_tags').keypress(function(event){
var char = String.fromCharCode(event.which)
var txt = $(this).val()
if (! txt.match(/[^A-Za-z0-9+#-\.]/)){
$(this).val(txt.replace(char, ''));
}
})
Run Code Online (Sandbox Code Playgroud)
为什么它不起作用?谢谢!
我正在尝试创建一个可以"监听"任何onKeyUp事件的cordova插件,并将其传递keyCode给回调函数.
目的是检测来自外部键盘/条形码扫描仪的任何键击 - 任何字符(例如0,1,2,3 ... a,b,c,...)
我的问题是:如何添加onKeyUp监听器?
这是我到目前为止:
package il.co.pnc.cordova.keystrokes;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.PluginResult;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.KeyEvent;
public class keystrokes extends CordovaPlugin {
private CallbackContext callback = null;
@Override
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
// Defining the callback
if ("register".equals(action)) {
this.callback = callbackContext;
}
return true;
}
}
// *** My problem is - I don't know where …Run Code Online (Sandbox Code Playgroud) 我在实时应用程序上遇到 UnsupportedOperationException 崩溃。所有崩溃都与 Moto Android 11 设备有关。可以看出它与 onKeyUp 有某种关系。但仍然不知道如何重现或解决这个问题。任何帮助,将不胜感激。
Fatal Exception: java.lang.UnsupportedOperationException: Tried to obtain display from a Context not associated with one. Only visual Contexts (such as Activity or one created with Context#createWindowContext) or ones created with Context#createDisplayContext are associated with displays. Other types of Contexts are typically related to background entities and may return an arbitrary display.
at android.app.ContextImpl.getDisplay(ContextImpl.java:2580)
at android.content.ContextWrapper.getDisplay(ContextWrapper.java:1030)
at android.content.ContextWrapper.getDisplay(ContextWrapper.java:1030)
at android.app.Activity.onKeyUp(Activity.java:3859)
at android.view.KeyEvent.dispatch(KeyEvent.java:2866)
at android.app.Activity.dispatchKeyEvent(Activity.java:4176)
at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:122)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:558)
at …Run Code Online (Sandbox Code Playgroud)