Chrome javascript / jquery重定向到索引

时间:2014-01-03 13:33:42

标签: javascript jquery google-chrome

编辑:我搜索了平均值,并读取了chrome不允许本地文件,这可能是原因吗?

我创建了我的第一个网站,主要包括php和jQuery以及一些JavaScript,一切都在Firefox上工作正常,我的问题是在chrome上,每当我在特定标签中提交表单时,它运行一切,但随后重定向到索引而不是打印结果

以下是我的功能

function cshoptab(tab) {   // for register.php
    var tab = tab;
    switch (tab) {
        case 'weapons':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/weapons.php');
            break;
        case 'helms':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/helms.php');
            break;
        case 'suits':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/suits.php');
            break;
        case 'gloves':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/gloves.php');
            break;
        case 'boots':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/boots.php');
            break;
        case 'style':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/style.php');
            break;
        case 'costumes':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/costumes.php');
            break;
        case 'pets':
            $("#cshopwrap").html('Loading').show();
            $("#cshopwrap").load('php/cshop/pets.php');
            break;
    }
}
function cshopsenditem(idxvalue, opt, duration) {
    $("#content").html('Loading purchase').show();
    var idxvalue = idxvalue.split('x');
    var idx = idxvalue[0];
    var price = idxvalue[1];
    var url = "php/cshop.php";
    $.post(url, {idx: idx, price: price, duration: duration, opt: opt}, function(data) {
        $("#content").html(data).show();
    });
}

PHP:

<?php
include 'functions.php';
session_start();

if($_SESSION['username']){

    $username=$_SESSION['username'];

    if($_POST){

        $price=$_POST['price'];
        $idx=$_POST['idx'];
        $opt=$_POST['opt'];
        $duration=$_POST['duration'];

        $cashstring = cshop($username, $opt, $duration, $idx, $price);
        echo $cashstring;
    }

?>

表格:

<form name=form method='post'  onsubmit='cshopsenditem(document.getElementById("idx").value, 
                                                    null, 
                                                    document.getElementById("duration").value)'>
            <table>
                    <tr>
                        <td rowspan=9><img src=cimg/style.png></td>
                        <td>Item: </td>
                        <td>
                            <select name=idx id='idx' onchange='updateprice(document.getElementById("idx").value)'>
                                <option value=901x100>Change Kit - Hair Style (Novice)</option>
                                <option value=904x100>Change Kit - Hair Color (Normal)</option>
                                <option value=906x100>Change Kit - Face (Novice)</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>Restriction: </td>
                        <td>Account Binded</td>
                    </tr>
                    <tr>
                        <td>Duration: </td>
                        <td>Permanent</td>
                    </tr>

                    <tr>
                        <td>Price: </td>
                        <td><div id='price'>100</div></td>
                    </tr>
                    <tr>
                        <td colspan=2 class='cshopbuybutton'>
                            <input name=duration id='duration' type=hidden value=31>
                            <input name=buybutton type=submit class='button' value='BUY NOW'>
                        </td>
                    </td>
                </table>
        </form>

2 个答案:

答案 0 :(得分:0)

也许是因为你不想刷新你的页面...... 如果我错了,就忽略它。

$.post(url, {idx: idx, price: price, duration: duration, opt: opt}, function(data) {
        $("#content").html(data).show();
    });
return false; //Missed this line

当您从$.post$.ajax提交表单时,您无需在onSubmit()中指定form方法,请尝试提供id为您的表单和执行$('#myform').click(function(){});

上的代码

答案 1 :(得分:0)

对于迟到的答案我很抱歉,原因是因为谷歌浏览器因某些原因不允许onsubmit事件,我不得不将其更改为onclick。