HTML должен быть:
<form onsubmit="return textin();">
<label>Name</label>
<input id="textname" type="text"/><br/>
<label>Message</label>
<textarea id="textmsg"></textarea><br/>
<label> </label>
<input type="submit" value="Send"/><br/><br/>
<label id="textresult"></label>
</form>
потому что в противном случае подумайте о том, что произойдет, когда вы нажмете клавишу ввода, в то время как у вас есть фокус на текстовое поле с идентификатором textname
JQuery должно быть:
function textin() {
var name = $("input#textname").first().attr("value");
var msg = $("textarea#textmsg").first().attr("value");
if (msg==null || msg=="")
{
alert("Message cannot be Blank");
return false;
};
$.ajax({
url: '<?=BASEURL?>/le-include/textin.php',
cache: false,
type: "POST",
data: {name : name, msg : msg},
success: function (data) {
$('#textname').attr('value', '');
$('#textmsg').attr('value', '');
$('#textresult').html(data);
$('#textresult').animate({ backgroundColor: $.Color( "rgba(2,232,87,1)" ), color: $.Color( "rgba(0,0,0,1)" ) });
$('#textresult').animate({ backgroundColor: $.Color( "rgba(0,0,0,0)" ), color: $.Color( "rgba(0,0,0,0)" ) });
}
});
return false;
};
потому что в противном случае форма будет отправлена как обычно, а не с помощью ajax.
Дополнительная информация:
.attr("value")
можно заменить короткой командой .val()
и
.attr("value", "")
можно заменить короткой командой .val("")
импотент! Я не знаю, хотите ли вы, но вы не проверяете, дано ли имя.
Вы можете проверить с помощью error: function() {}
, не работает ли интернет-соединение или что-то еще произошло, и дать пользователю сообщение об ошибке.
Проверьте в PHP, отправляются ли данные (isset($var)
), потому что в противном случае, возможно, кто-то поиграет с вашим сайтом и перейдет на страницу и получит сообщения об ошибках, а это было бы нехорошо.