我有一个检索JSON对象的适配器,但奇怪的是,如果表单只使用按钮,但是如果我放<input type="text">
然后WL.Client.invokeProcedure
的回调(&#39),一切正常; onSuccess&#39;或'onFailure&#39;)或未调用...
适配器代码:
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); }
HTML表单:
<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>
我尝试过调试,但是cudnt得到了任何东西。
EDIT2: 我修好了它! 所以基本上,在html表单中你不能添加&#39; name&#39;使用worklight时输入元素的属性。不知道为什么会这样......
答案 0 :(得分:1)
这对我有用......
完整示例:https://stackoverflow.com/a/17852974/1530814
<强>的index.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>
<强> main.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");
}