2015-06-11 6 views
2

У меня есть адаптер, который извлекает объект JSON, но, как ни странно, все работает нормально, если форма использует только кнопку, но если я поставлю <input type="text">, тогда обратные вызовы WL.Client.invokeProcedure (' OnSuccess' или 'OnFailure') или не называется ...Невозможно вызвать 'onSuccess' или 'onFailure' вызова адаптера

Adapter Код:

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 получить что-нибудь.

изменить2: Я исправил его! Итак, в основном, в форме html вы не можете добавить свойство «name» к элементу ввода при использовании с подсветкой. Не знаю, почему это так ..

+0

Можете ли вы поставить ** полные ** функции вместо * неполного * фрагмента кода s? –

ответ

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"); 
} 
+0

Я попытался с вашим стилем вызова WL.Client.invokeProcedure (invocationData, options); также, но сделал не работа. , но, как указано выше, если я изменю форму html, как это все работает как масло, '

' – amrutdeshpande

Смежные вопросы