Недопустимые символы в файле Javascript, приводящие к тому, что форма не работает с Jquery - PullRequest
0 голосов
/ 19 марта 2012

Может кто-нибудь, пожалуйста, взгляните на это, просто мне не нужны его html-форма, php-файл для его обработки и javascript-файл, ошибки в браузере показывают такие вещи как фантомные недопустимые символы U + 12AF в файл JScript, работающий в течение 1,5 часов, и я в полном восторге.

<code>--submit.js--

    $(document).ready(function() {
    $(function() {
        $('#paycheck').bind('submit', function() {
            $.post('Paycheck.php', $("#paycheck").serialize(), function(data) {
                $('#result').html(data);
            });
        });
    });
});

    --Paycheck.html--
    <!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <pre><title>Weekly Gross Paycheck Calculator</title>

PayCheck

Количество часов:

Почасовая оплата $

& nbsp; & nbsp;

<! - Форма и JavaScript будут выводить результаты здесь ->
--Paycheck.php-- <? PHP function validateInput ($ data, $ fieldName) { глобальный $ errorCount; if (empty ($ data)) { echo "\" $ fieldName \ "- обязательное поле. <br/> \ n"; ++ $ ERRORCOUNT; $ retval = ""; } else {// Очистить ввод, только если он не пустой if (! is_numeric ($ data)) { echo "\" $ fieldName \ "должно быть числовым.
\ n"; ++ $ ERRORCOUNT; $ retval = ""; } Еще { $ retval = trim ($ data); $ retval = полоски ($ retval); } возврат ($ RetVal); } // конец validateInput () } $ ShowForm = TRUE; $ errorCount = 0; $ numHours = ""; $ hourlyWage = ""; $ wage = ""; if (isset ($ _ POST ['Submit'])) { $ numHours = validateInput ($ _ POST ['numHours'], "Количество часов"); $ hourlyWage = validateInput ($ _ POST ['hourlyWage'], "Hourly Wage"); если ($ errorCount == 0) $ ShowForm = FALSE; еще $ ShowForm = TRUE; } echo $ numHours. "". $ HourlyWage; if ($ ShowForm == TRUE) { if ($ errorCount> 0) // если были ошибки напечатать "

Пожалуйста, введите информацию формы ниже.

\ n"; } еще { // Если часы старше 40, то используйте время с половиной if ($ numHours> 40) {$ wage = ((($ numHours - 40) * 1.5) * $ hourlyWage) + ($ hourlyWage * 40); } // в противном случае используем нормальное умножение. else {$ wage = $ numHours * $ hourlyWage; } print "

Ваша недельная валовая зарплата составляет $". $ заработная плата "

\ п."; } ?>

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Несколько вещей:

В вашем js есть дополнительная вложенная лямбда-функция, которая не требуется.

$(document).ready($(function() {
    $('#paycheck').bind('submit', function() {
        $.post('Paycheck.php', $("#paycheck").serialize(), function(data) {
            $('#result').html(data);
        });
    });
});

В вашей форме нет действий, замените на action="Payment.php"

Также в строке сценария php 27 должно быть if (isset($_POST['submit'])) { (с прописными буквами s в submit).

После этих изменений все, кажется, работает как задумано.

0 голосов
/ 19 марта 2012

Вы уверены в последней строке вашего php-скрипта?Я имею в виду, не следует ли экранировать знак доллара, как в:

print "<p>Your weekly gross salary is \$". $wage . ".</p>\n";

Комментарии правильны между прочим:

1)

$(document).ready(function() {
    // don't double wrap
    $('#paycheck').bind('submit', function() {
        $.post('Paycheck.php', $("#paycheck").serialize(), function(data) {
            $('#result').html(data);
        });
    });
});

2)

<head>
<title>Weekly Gross Paycheck Calculator</title>
<!-- no pre tags -->
<script type=...
...