我有一个适配器可以检索 JSON 对象,但奇怪的是,如果表单仅使用按钮,一切正常,但如果我输入<input type="text">
那么WL.Client.invokeProcedure
的回调("onSuccess"或"onFailure")或不调用...
适配器代码:
intranetId="my-email-address";
var invocationData = {
adapter : 'RoleAdapter',
procedure : 'getRoles',
parameters : [intranetId,"role"]
};
WL.Client.invokeProcedure(invocationData, {
onSuccess : function(res){ console.log('win', res); },
onFailure : function(res){ console.log('fail', res); }
网页表单:
<div id="welcome">
<form action="#welcome2" onsubmit="getRole()">
<input type="text" id="userId">
<br/>
<input type="password" name = "password">
<br/>
<input type="submit" value="Login">
</form>
</div>
我能够获得userId
的值,即使我在同样的问题中硬编码getRole()
......
编辑:关于将 html 表单更改为此
表单<div id="welcome">
<form action="#welcome2" onsubmit="return getRole()">
<input type="submit" value="go">
</form>
</div>
我尝试调试,但没有得到任何东西。
编辑2:我修好了!所以基本上,在 html 表单中,当您与 worklight 一起使用时,您不能将"name"属性添加到输入元素。不知道为什么会这样..
我有用...
完整示例如下: https://stackoverflow.com/a/17852974/1530814
索引.html
<form onsubmit="submitName()">
First name: <input type="text" id="firstname"/><br>
Last name: <input type="text" id="lastname"/><br>
<input type="submit" value="Submit Name"/>
</form>
主.js
function wlCommonInit(){
}
function submitName() {
var invocationData = {
adapter : 'exampleAdapter',
procedure : "showParameters",
parameters : [$('#firstname').val(),$('#lastname').val()]
};
var options = {
onSuccess : success,
onFailure : failure
};
WL.Client.invokeProcedure(invocationData, options);
}
function success() {
alert ("success");
}
function failure(res) {
alert ("failure");
}