0

私は Jquery を使い始めており、jquery で作成したい次の JS 関数があります。

<script type="text/javascript" language="javascript">
function redirect() {

  //var dest = "?phone=" + phone;
  var prefill = "&prefill=3";
  var info=document.choice.infos.value;
  var dest = "&info="+info;
  var url=document.choice.centres.value;
  var urlfinal=url+dest+prefill;
  document.location.href=urlfinal
}
</script>


<form name="choice">    
<select name="centres">
  <option value="http://toto.com/?var=1">var1</option>
  <option value="http://toto.com/?var=2">var2</option>
</select>
<br />
<INPUT TYPE="text" NAME="infos">
<input type="button" value="Go!" onClick="redirect();">

</form>
4

2 に答える 2

2

ボタンのマークアップ

<input type="button" value="Go!" id="submit">

およびjqueryコード:

$(document).ready(function() {
    $('#submit').click(function() {
        //var dest = "?phone=" + phone;

        var finalUrl = $("select#centers").val();
        var querystring = '&prefill=3' + '&info=' 
                               + $("select#info").val() + dest;
        finalUrl = finalUrl + querystring ;
        window.location.replace(finalUrl);
    });
});
于 2012-05-25T19:56:39.037 に答える
0

Javascript コンソールを開いた状態で Google Chrome または Firefox を使用し、console.log を使用して重要なポイントでコードをチェックする習慣を身につけてください。ところで、フォーム要素は必要ありません:

...
<script type="text/javascript">
$(function () {

    $('#btnRedirect').click(function () {
        var centres = $('#centres');
        var centre = $('option:selected', centres);
        //console.log(centre.val());

        var infos = $('#infos');
        //console.log(infos.val());

        var dest = "&info=" + infos.val();
        var prefill = "&prefill=3";
        var urlfinal = centre.val() + dest + prefill;
        //console.log(urlfinal);

        document.location = urlfinal;
    });
});
</script>

...

<body>
<select id="centres">
  <option value="http://toto.com/?var=1">var1</option>
  <option value="http://toto.com/?var=2">var2</option>
</select>
<br />
<input type="text" id="infos"/>
<input id="btnRedirect" type="button" value="Go!"/>
</body>
于 2012-05-25T20:28:41.393 に答える