Это неправильно:
var btn = document.getElementById("submitAction").value;
Кнопки с классом "submitAction", не имеют атрибутов id ... Вы не можете передать значение кнопки, подобной этой, без передачи события.Вы можете передать его, выполнив следующее:
добавьте 'this' к функциям кнопок ввода по нажатию:
<input type="submit" name="submitAction" value="Verify OTP" onclick="DoSubmit(this)"/>
Затем в вашей функции вы можете получить значение, подобное этому:
function DoSubmit(e)
{
var btn = e.value;
(обязательно добавьте 'e' в скобках функции.)
Теперь вторая проблема в вашем примере заключается в том, что вы используете форму, но также делаете запрос ajax.Что именно вы хотите сделать?
Если вы хотите сделать ajax-запрос, удалите теги формы.Потому что каждый раз, когда вы нажимаете на кнопки, вы отправляете форму, и вы не хотите, чтобы это произошло, потому что это изменит страницу, на которой вы находитесь.
Ваш HTML должен выглядеть следующим образом:
<html>
<body>
<script>
function DoSubmit(e)
{
var btn = e.value;
var myOTP = "123123"; //you don't define this anywhere in your example...
alert("in side the DoSubmit method and OTP is : "+myOTP+ " btn clicked: "+btn);
var params = {
myOTP : myOTP,
submitAction : btn
};
$.post("myservlet", $.param(params), function(response) {
//here you can handle the response from the servlet
$('#ajaxGetUserServletResponse').text(myOTP);
});
}
</script>
<div id="dialog" title="Enter the OTP">
<p id="message">Enter the One Time Password</p>
<p id="note"> OTP code generated will be valid for 10 Mins<p>
<input type="text" style="margin-left:10px" valign="right" maxlength=4 size=4 id="myotp" title="OTP" name="myOTP">
<input type="submit" name="submitAction" value="Verify OTP" onclick="DoSubmit(this)"/>
<input type="submit" name="submitAction" value="Resend OTP"onclick="DoSubmit(this)"/>
<button id="back">Back</button>
<div id="ajaxGetUserServletResponse" style="display: none;"></div>
</div>
</body>
</html>