1

:confirm => "Are you sure"を条件付きにするにはどうすればよいですか?私はこのコードを持っています

<div id="container"><%= form_for @question,:remote=>true,:html=>{:name=>"question"} do |f|%>
    <p>
        <div class ="row">
        <%= label_tag(:topic,@displayquestion.question_text,:class=>"form-label")%>
        </div>
    </p>
    <p>
    <label>
    <%= f.radio_button(:answer, "1") %>
    <%= label_tag(:choice1,@displayquestion.choice1,:class=>"form-label")%>
    </label>
    </p>
    <p>
    <label>
    <%= f.radio_button(:answer, "2") %>
    <%= label_tag(:choice2,@displayquestion.choice2,:class=>"form-label")%>
    </label>
    </p>
    <p>
    <label>
    <%= f.radio_button(:answer, "3") %>
    <%= label_tag(:choice3,@displayquestion.choice3,:class=>"form-label")%>
    </label>
    </p>
    <p>
    <label>
    <%= f.radio_button(:answer, "4") %>
    <%= label_tag(:choice4,@displayquestion.choice4,:class=>"form-label")%>
    </label>
    </p>
    <%= f.submit(:value=>next,:class =>"button",:disable_with=>'loading') %>
<% end %></div>

ラジオボタンが選択されていない場合にのみプロンプトが表示されるようにしたいと思います。ラジオボタンが選択されていない場合にユーザーにプロンプ​​トを表示するこのjQueryコードがあります。

$(document).ready(function(){

   $("#container").on("click", ".edit_question", function(event){

     if (!$("input[@name='question[answer]']:checked").val()) {
       confirm('Are sure you want to submit a blank answer?');
    }

   if (!$("input[@name='answer[]']:checked").val()) {
       confirm('Are sure you want to submit a blank answer?');
    }

}
);
});

問題は、[キャンセル]をクリックしてもajaxリクエストが送信されることですが、ajaxリクエストをインターセプトしてjQueryコードを呼び出すにはどうすればよいですか?

ポインタをありがとう!私はこのようにそれをしました、そしてそれは働きます!

$(document).ready(function(){

   $("#container").on("submit", ".edit_question", function(event){
    var reply = true;
     if (!$("input[@name='question[answer]']:checked").val()) {
       reply=confirm('Are sure you want to submit a blank answer?');
    }

   if (!$("input[@name='answer[]']:checked").val()) {
       reply=confirm('Are sure you want to submit a blank answer?');
    }
   return reply;
}
);
});
4

1 に答える 1

2

ページの送信をキャンセルするには、クリック機能がfalseを返す必要があります。Confirm()はboolを返し、okの場合はtrue、キャンセルの場合はfalseを返します。

例:

$("#container").on("click", ".edit_question", function(event){

    if (!$("input[@name='question[answer]']:checked").val()
        || !$("input[@name='answer[]']:checked").val()  ) {
        return confirm('Are sure you want to submit a blank answer?');
    }
    return true;
}
于 2012-09-28T15:12:12.333 に答える