2013-07-07 50 views
2

POST一个我有这样一种形式:数据验证然后从

<form method='post' action='next' onsubmit="return validateMyForm();" > 
    <input type="text" id="data" /> 
<input type="submit" /> 
<p id="result"></p> 

和此代码为交互与node.js的:

socket = io.connect(); 
function vlidateMyForm(){ 
    var data = $('data').val(); 
    socket.emit('login',{data: data}); // check dataBase in server 
    return false; 
} 

socket.on('responseLogin',function(result){ 
    if(result){ // if data is valid 
     // submit form 
    } 
    else{ // data invalid 
     $('#result').html('field is not valid') 
    } 
}); 

当结果为真时,我想提交我的表格。我该怎么做才能解决这个问题?

回答

0

您可以使用jQuery submit提交表单:

$("form#formID").submit(); 

你的表格必须action属性像action='url_to_post_to'这一点。

或者,如果你喜欢使用AJAX,这样就可以处理这些数据,你可以这样做:

$.ajax({ 
    type: "POST", 
    url: 'url_to_post_to', 
    data: $("#formID").serialize(), 
    success: function(data) 
    { 
     alert(data); 
    } 
}); 
+0

感谢的很多。但我想使用socket.io –

+0

在这种情况下,您可以尝试'socket.emit('form',$(“#formID”)。serialize())'。告诉它是否有效。 – user568109

+0

感谢的朋友。不起作用。这不是我的问题。 validateMyForm()返回false,所以这个表单不提交。我希望当responseLogin数据是真实的形式提交。再次感谢 –

1

变化socket.on('responseLogin',function(result){...socket.on('login',function(result){...应该解决您的问题

相关问题