1

我做了这个代码: 文件 index.php

<html>
<head>
<title>Jeu de dammes</title>
</head>
<style>
form { margin-left:500px;margin-top:300px;  width:300px }
  </style>
<body>
<form id="formulaire" style="margin-left:100px, padding: 15px" >
<table>
<tr><td><h4> The first player</h4></td>
    <td><input   type="text"   id="premier"></td>
</tr>
<tr><td><h4> The second player</h4></td>
    <td><input   type="text"   id="deuxieme"></td>
</tr>
<tr>
<td></td>
<td>
<button   id="action">Play</button></td>
</tr>
</table>
</form>
<script   src="jquery-1.5.1.js"></script>
<script>

    $(function () {

        $('#action').click(function () {

            var j1= $('#premier').val();
            var j2= $('#deuxieme').val();

            if( j1=="") alert('saisir le nom du premier joueur');
            if( j2=="") alert('saisir le nom du deuxieme joueur');
            if(j2!="" && j1!="") {$(location).attr('href',"http://www.google.com");}
        });

    $('body').css('background-image', 'url(flower2.jpg)').css('background-size', '100%');
    $("#formulaire").css('background-image', 'url(flower.jpg)');
    });
</script>
</body>
</html>

我的问题是如果单击重定向到“www.google.com”不起作用。任何建议:

  1. 这个错误的原因是什么?
  2. 我该如何纠正?
4

3 回答 3

1

没有必要使用 jQuery 来做 vanilla JavaScript 已经做的事情:

window.location.href = "http://www.google.com/";

它不起作用可能是因为您正在使用表单并且在您可以重定向之前提交。抓住submit事件:

将您的代码更改为此,它将起作用:

$('#formulaire').submit(function(e) {
    var j1 = $('#premier').val();
    var j2 = $('#deuxieme').val();

    if (j1 == "") {
        alert('saisir le nom du premier joueur');
    }

    if (j2 == "") {
        alert('saisir le nom du deuxieme joueur');
    }

    if (j2 && j1) {
        window.location.href = "http://www.google.com";
    }

    e.preventDefault();
});
于 2012-12-08T23:16:53.013 回答
1

要重定向,您只需更改location全局变量:

location = "http://www.google.com"

您所做的不起作用,因为您通常只是将选择器或回调传递给 jQuery 函数$(...)(例如$("#something a").)location,这是 JavaScript 提供的全局变量。

于 2012-12-08T23:17:03.460 回答
0

更换你的

$(location).attr('href',"http://www.google.com");

使用纯 Javascript

window.location = "http://www.google.com"

编辑:

好吧,我的错,还有一个额外的问题,你不是在表单有问题的时候返回false,也不是在你做重定向的时候,所以表单的默认动作(POST)打破了之前的导航window.location

稍微清理一下代码并为字段添加焦点,当您打开页面时,当其中一个字段未填写时,刚刚在http://fiddle.jshell.net/P3zbb/show/light/发布了一个演示

你可以在http://jsfiddle.net/P3zbb/看到代码模组

于 2012-12-08T23:24:08.740 回答