frank
07/08/2020, 9:48 PMEnter
key onkeyup()
but dont work. Any suggestions why it is failing?
Kotlin code:
attrs.onKeyUpFunction = {
it.preventDefault()
if (it.asDynamic().key === "Enter" || it.asDynamic().keyCode === 13) onLoginButtonClicked()
}
Javascript Generated:
function loginWindow$lambda$lambda$lambda$lambda(closure$onLoginButtonClicked) {
return function (it) {
it.preventDefault();
if (it.key === 'Enter' || it.keyCode === 13)
closure$onLoginButtonClicked();
return Unit;
};
}
Sebastian Aigner
07/08/2020, 11:58 PMonKeyUpFunction = {
it.preventDefault()
if(it.asDynamic().key == "Enter") {
console.log("hit")
}
}
It also works with ===
for me, and your code snippet with a dummy onLoginButtonClicked()
also seems fine. Btw, I don’t think this is the right place to use ===
in Kotlin code (triple-equals describes reference equality; https://kotlinlang.org/docs/reference/equality.html#referential-equality)turansky
07/09/2020, 1:38 AMfrank
07/10/2020, 2:45 PMonLoginButtonClicked()
function it does not manage to enter completely.
It only happens in@Sebastian Aigner, Do you know if there have been problems calling functions in HTML Events? Kotlin Resume Code :withonkeyupfunction()
works.onClickFunction()
fun onLoginButtonClicked(): (Event) -> Unit {
console.log("onlogin!") //Enter here
return { //Not enter in return with onKeyUpFunction
console.log("nickname")
if (!nickName.isBlank()) {
console.log(socket)
socket.emit("join", nickName)
}else{
console.log("null = $nickName")
}
}
}
div{ //HTML DSL
input(classes = "nickNameInput") {
attrs.onInputFunction = onInput()
attrs.onKeyUpFunction = {
it.preventDefault()
if (it.asDynamic().key === "Enter" || it.asDynamic().keyCode === 13) {
onLoginButtonClicked() //enter here
}
}
}
button(classes = "loginButton") {
+"Login"
attrs.onClickFunction = onLoginButtonClicked() //Works
}
}
JS Generated: Resume Code
function loginWindow$lambda$onLoginButtonClicked$lambda(closure$props) {
return function (it) {
console.log('nickname'); //Not enter in return with onKeyUpFunction
if (!isBlank(get_nickName())) {
console.log(socket_0);
socket_0.emit('join', get_nickName());
} else {
console.log('null = ' + get_nickName());
}
return Unit;
};
}
function loginWindow$lambda$onLoginButtonClicked(closure$props) {
return function () {
console.log('onlogin!') //Enter here
return loginWindow$lambda$onLoginButtonClicked$lambda(closure$props);
};
}
function loginWindow$lambda$lambda$lambda$lambda(closure$onLoginButtonClicked) {
return function (it) {
it.preventDefault();
if (it.key === 'Enter' || it.keyCode === 13) {
closure$onLoginButtonClicked(); //Enter here
}return Unit;
};
}
function loginWindow$lambda($receiver, props) {
var onInput = loginWindow$lambda$onInput;
var onLoginButtonClicked = loginWindow$lambda$onLoginButtonClicked(props); //function
var $receiver_0_1 = new RDOMBuilder_init(input$lambda_0(null, null, null, null, 'nickNameInput')); //Input element
set_onInputFunction($receiver_0_1.attrs, onInput());
set_onKeyUpFunction($receiver_0_1.attrs, loginWindow$lambda$lambda$lambda$lambda(onLoginButtonClicked));
var $receiver_0_2 = new RDOMBuilder_init(button$lambda_0(null, null, null, 'loginButton')); //Button element
$receiver_0_2.unaryPlus_pdl1vz$('Login');
set_onClickFunction($receiver_0_2.attrs, onLoginButtonClicked());
return Unit;
}
frank
07/10/2020, 2:45 PMWhich browser do you use?@turansky, firefox 78
turansky
07/10/2020, 2:49 PMkey
for Enter
turansky
07/10/2020, 2:49 PMenter
for examplefrank
07/10/2020, 5:58 PMEnter
key Browser detect it correctly,
Validation is successful and get inside IF
conditional but fails when call onLoginButtonClicked()
. I tried it without IF
but it still fails.
It only happens inwithonkeyupfunction()
works.onClickFunction()
frank
07/10/2020, 6:10 PMInwas returning (Event) -> UnitonLoginButtonClicked()
turansky
07/10/2020, 6:55 PMundefined
required?frank
07/10/2020, 7:30 PMundefined
required. I don't get the context.