2017-02-23 6 views
0

FlaskとMySQLを使用して小さなWebアプリケーションをセットアップしようとしています。ページのラジオボタンから情報を取り出し、DBに送ります。私はwebdevの新機能ですから、実際にボタンから情報を取得することにはまだまだ取り組んでいます。JavaScriptを使用してラジオボタンから値を取得する

これは私のラジオボタン(インデントを剥奪)のためのHTMLです:

<div> 
<input id="radioB" type="radio" name="radios" value="b" checked="checked"> 
<label for="radioB"><span><span></span></span>B</label> 
</div> 
<div> 
<input id="radioT" type="radio" name="radios" value="t"> 
<label for="radioT"><span><span></span></span>T</label> 
</div> 

そして、これが私のスクリプトです:

$(function(){ 
    $('#btnSubmit').click(function(){ 
      $.ajax({ 
        url: '/submit', 
        data: $('radios:checked').val(), 
        type: 'POST', 
        success: function(response){ 
          console.log(response); 
        }, 
        error: function(error){ 
          console.log(error); 
        } 
      }); 
    }); 
}); 

と私のフラスココードで、私はそれを要求しようとしています使用:

_info = request.form['radios'] 

を私は現在、これを実行しようとすると、私は

を取得します
"POST /submit HTTP/1.1" 400 - 

フラスコのログにエラーがあり、私の問題がスクリプトの「データ」部分またはフラスコ要求のいずれかにあると信じています。この部分の助けを借りていただければ幸いです。

EDIT:

<form action ="/submit" form method="post"> 
    <div> 
     <input id="radioB" type="radio" name="radios" value="b" checked="checked"> 
     <label for="radioB"><span><span></span></span>B</label> 
    </div> 
    <div> 
     <input id="radioT" type="radio" name="radios" value="t"> 
     <label for="radioT"><span><span></span></span>T</label> 
    </div> 
    <input type="submit" id="btnSubmit"> 

と私のJSスクリプトへ:私はに私のHTMLを変更している今

$(function(){ 
$('#btnSubmit').click(function(){ 
     var radioValue = $("input[name=radios]:checked").val(); 
     alert(radioValue); 
     $.ajax({ 
       url: '/submit', 
       data: {value:radioValue}, 
       type: 'POST', 
       success: function(response){ 
         console.log(response); 
       }, 
       error: function(error){ 
         console.log(error); 
       } 
     }); 
    }); 
}); 

、代わりに、ブラウザのコンソールで上記のJSスクリプトのエラー状態を取得しています以前のエラーのあなたは名前でアクセスしている場合

答えて

1

私はあなたが

$(function(){ 
 
    $('#btnSubmit').click(function(){ 
 
      var radioValue = $("input[name=radios]:checked").val(); 
 
      alert(radioValue); 
 
      $.ajax({ 
 
        url: '/submit', 
 
        data: {value:radioValue}, 
 
        type: 'POST', 
 
        success: function(response){ 
 
          console.log(response); 
 
        }, 
 
        error: function(error){ 
 
          console.log(error); 
 
        } 
 
      }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="post"> 
 
<div> 
 
<input id="radioB" type="radio" name="radios" value="b" checked="checked"> 
 
<label for="radioB"><span><span></span></span>B</label> 
 
</div> 
 
<div> 
 
<input id="radioT" type="radio" name="radios" value="t"> 
 
<label for="radioT"><span><span></span></span>T</label> 
 
</div> 
 
<input type="submit" id="btnSubmit"> 
 
</form>

+0

を取得しています、私は削除したと信じて、ありがとう解を得る願っていますラジオボタンの値を取得するために$("input[name='radios']:checked").val();を試してみてください既存のボタンを私は提出し、あなたの方法を取って使用していた。私はあなたのフォームメソッドポスト(submitは私のフラスコ機能ページです)に加えて、

を追加しなければなりませんでした。私のjavascriptスクリプトは意図したとおりに動作しておらず、エラー状態を返すようです。 – zimty

+1

私のコードをもう一度やり直してください。あなたの問題を簡単に見つけて解決することができれば幸いです。 のAJAXのデフォルトのリクエストデータ型はJSONなので、json形式のデータを渡す必要があります。それ以外の場合は、dataTypeを指定する必要があります。 '$アヤックス({ URL: '/提出' データ:{値:radioValue}、 タイプ: 'POST' 成功:関数(応答){ にconsole.log(応答); } エラー:機能(エラー){ console.log(エラー); } }); ' – Jyupin

+0

ありがとうございました。アラートは私にラジオからの正しい値を与えていますが、スクリプトからブラウザのコンソールにエラー状態が表示されています。 "Object {readyState:0、status:0、statusText:" error "}" – zimty

1

はそれが

$("input[name='radios']:checked").val() 

すべきではありません!

希望すると助かります!

+0

はい、私はあなたが正しいですが、私はまだHTTP 400エラー – zimty

関連する問題