Должно работать нормально. Там, вероятно, больше в вопросе. К сожалению, код в вашем вопросе не имеет вкуса SSCCE , так что трудно определить причину. Возможно, вы вообще не импортировали библиотеку jQuery. Или вы позвонили $(document).ready()
до импорта библиотеки jQuery. Или у вас есть другая библиотека JS, которая конфликтует $()
. Или фактическая форма не имеет желаемого имени. Etc..etc ..
Для начала, вот достойный SSCCE . Все, что вам нужно сделать, это скопировать и запустить его.
<!DOCTYPE html>
<html lang="en">
<head>
<title>SO question 3569072</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$('form[name=pForm]').submit(function() {
alert('Submit blocked!');
return false;
});
});
</script>
</head>
<body>
<form action="index.php" method="post" name="pForm">
<textarea name="comment" onclick="if(this.value == 'skriv här...') this.value='';" onblur="if(this.value.length == 0) this.value='skriv här...';">skriv här...</textarea>
<input class="submit" type="submit" value="Publicera!" name="submit" />
</form>
</body>
</html>
Если это работает (по крайней мере, здесь работает, я получаю предупреждение, а форма вообще не отправляется), сравните его со своим собственным кодом и попытайтесь сократить свой собственный код до такой степени, чтобы вы могли лучше найдите различия (и, следовательно, свою ошибку).
Несмотря на это, по моему мнению, будет стоить усилий, чтобы разобраться в некоторых базовых / тривиальных руководствах по jQuery (и предпочтительно также JavaScript), чтобы вы лучше поняли, что происходит под прикрытием, и научились использовать такие инструменты, как Firebug .