Когда форма отправлена, выбранный элемент очищается - PullRequest
0 голосов
/ 11 января 2019

Я использую колбу, когда я нажимаю кнопку submit, выбранный элемент (id=workingMethod), который я выбрал, очищается.

Я выбираю 2, вы можете увидеть это на картинке:

enter image description here

Когда я нажимаю кнопку submit:

enter image description here

Как сохранить выбранный контент в выбранном?

Мой HTML-код:

<html>
    <head>
        <title>cal</title>
        <link href="static/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
        <link href="static/css/FlaskModelCalculation.css" rel="stylesheet" type="text/css"/>
        <link href="static/css/bootstrap-select.css" rel="stylesheet" type="text/css"/>
        <script src="static/js/jquery-1.11.3.min.js"></script>
        <script src="static/js/bootstrap-select.js"></script>
        <script type="text/javascript">
        $(function () {
              $('#calculate').click(function(){
              var careerHistory = $("#careerHistory").val();
              if(careerHistory=="" || careerHistory==="undefined"){
                    alert("careerHistory cann't null");
                    return;
                 }
              });
        });
    </script>


    </head>
    <body>
        <div align="center" style="margin-top:60px">
            <form name="form1" method='POST'>
                    <span>careerHistory</span><input type="text" placeholder="careerHistory" id="careerHistory" name="careerHistory" class="form-control" value="{{careerHistory}}"><br/>
                    <span>wholeBookNumber</span><input type="text" placeholder="wholeBookNumber" id="wholeBookNumber" name="wholeBookNumber"  class="form-control" value="{{wholeBookNumber}}"><br/>
                    <span>reflectionBookNumber</span><input type="text" placeholder="reflectionBookNumber" id="reflectionBookNumber" name="reflectionBookNumber"  class="form-control" value="{{reflectionBookNumber}}"><br/>
                    <span>schoolClassificationCD</span><input type="text" placeholder="schoolClassificationCD" id="schoolClassificationCD" name="schoolClassificationCD" class="form-control" value="{{schoolClassificationCD}}"><br/>
                    <span>jobsNumber</span><input type="text" placeholder="jobsNumber" id="jobsNumber" name="jobsNumber"  class="form-control" value="{{jobsNumber}}"><br/>
                    <span>constructionSpecificity</span><input type="text" placeholder="constructionSpecificity" id="constructionSpecificity" name="constructionSpecificity"  class="form-control" value="{{constructionSpecificity}}"><br/>
                    <span>playingStyle</span><input type="text" placeholder="playingStyle" id="playingStyle" name="playingStyle"  class="form-control" value="{{playingStyle}}"><br/>
                    <span>workingMethod</span>
                        <select id="workingMethod" name="workingMethod" class="">
                            <option value ="0"></option>
                            <option value ="1">1</option>
                            <option value ="2">2</option>
                            <option value ="3">3</option>
                        </select><br/>
                    <span>workOvertimeAverage</span><input type="text" placeholder="workOvertimeAverage" id="workOvertimeAverage" name="workOvertimeAverage" class="form-control" value="{{workOvertimeAverage}}"><br/>
                    <input type="submit" id="calculate" class="btn btnNormal btn-primary" value="cal">
                    <input type="text" placeholder="calculationResult" name="calculationResult" readonly="readonly" class="form-control" value="{{calculationResult}}">
            </form>
        </div>
    </body>
    <footer>
    </footer>
</html>

Код фляги Python:

from flask import Flask
from flask import render_template
from flask import redirect
from flask import url_for
from flask import request
import Store_mold

app = Flask(__name__)

@app.route('/')
def index():
    return redirect(url_for('calculate'))

@app.route('/calculate',methods=['GET','POST'])
def calculate():
    if request.method =="POST":
        careerHistory = int(request.form['careerHistory'])
        wholeBookNumber = int(request.form['wholeBookNumber'])
        reflectionBookNumber = int(request.form['reflectionBookNumber'])
        schoolClassificationCD = int(request.form['schoolClassificationCD'])
        jobsNumber = int(request.form['jobsNumber'])
        constructionSpecificity = int(request.form['constructionSpecificity'])
        playingStyle = int(request.form['playingStyle'])
        workingMethod = int(request.form.get('workingMethod'))
        workOvertimeAverage = int(request.form['workOvertimeAverage'])
        calculationResult = int(Store_mold.Store_mold(careerHistory,wholeBookNumber,reflectionBookNumber,schoolClassificationCD,jobsNumber,constructionSpecificity,playingStyle,workingMethod,workOvertimeAverage))
        if calculationResult==0:
            calculationResult='yes'
        elif calculationResult==1:
            calculationResult='no'
        return render_template('index.html',careerHistory=careerHistory, wholeBookNumber=wholeBookNumber, reflectionBookNumber=reflectionBookNumber, schoolClassificationCD=schoolClassificationCD, jobsNumber=jobsNumber, constructionSpecificity=constructionSpecificity, playingStyle=playingStyle, workingMethod=workingMethod, workOvertimeAverage=workOvertimeAverage, calculationResult=calculationResult)
    return render_template('index.html')


if __name__ == '__main__':
    app.run()

Я думаю, что для этого нужно использовать sessionStorage, сохранять значение параметра select в sessionStorage, после каждого щелчка получать значение из sessionStorage и устанавливать его для выбора параметра.

Ответы [ 3 ]

0 голосов
/ 11 января 2019

поместите это в функцию вычисления по клику после проверки.

var dlval =
$('#workingMethod').children("option:selected").val();
$("#workingMethod").find("option:contains(dlval)").each(function() {
     if( $(this).val() == dlval) {
         $(this).attr("selected","selected");
     }
});
0 голосов
/ 11 января 2019

Я использую sessionStorage, чтобы сделать это:

    <script type="text/javascript">
    $(function () {
            var ss_schoolClassificationCD = sessionStorage.getItem("schoolClassificationCD");
            if($.trim(ss_schoolClassificationCD)=="" || ss_schoolClassificationCD==="undefined"!="" || schoolClassificationCD!=null){
                $("#schoolClassificationCD").val(ss_schoolClassificationCD);
            }

            var ss_constructionSpecificity = sessionStorage.getItem("constructionSpecificity");
            if($.trim(ss_constructionSpecificity)=="" || ss_constructionSpecificity==="undefined"!="" || ss_constructionSpecificity!=null){
                $("#constructionSpecificity").val(ss_constructionSpecificity);
            }

            var ss_playingStyle = sessionStorage.getItem("playingStyle");
            if($.trim(ss_playingStyle)=="" || ss_playingStyle==="undefined"!="" || ss_playingStyle!=null){
                $("#playingStyle").val(ss_playingStyle);
            }

            var ss_workingMethod = sessionStorage.getItem("workingMethod");
            if($.trim(ss_workingMethod)=="" || ss_workingMethod==="undefined"!="" || ss_workingMethod!=null){
                $("#workingMethod").val(ss_workingMethod);
            }

          $("#calculate").click(function(){
            var careerHistory = $("#careerHistory").val();
            var wholeBookNumber = $("#wholeBookNumber").val();
            var reflectionBookNumber = $("#reflectionBookNumber").val();
            var schoolClassificationCD = $("#schoolClassificationCD").val();
            var jobsNumber = $("#jobsNumber").val();
            var constructionSpecificity = $("#constructionSpecificity").val();
            var playingStyle = $("#playingStyle").val();
            var workingMethod = $("#workingMethod").val();
            var workOvertimeAverage = $("#workOvertimeAverage").val();

             if($.trim(careerHistory)=="" || careerHistory==="undefined"){
                return;
             }else{
                sessionStorage.setItem("careerHistory",careerHistory);
                sessionStorage.setItem("wholeBookNumber",wholeBookNumber);
                sessionStorage.setItem("reflectionBookNumber",reflectionBookNumber);
                sessionStorage.setItem("schoolClassificationCD",schoolClassificationCD);
                sessionStorage.setItem("jobsNumber",jobsNumber);
                sessionStorage.setItem("constructionSpecificity",constructionSpecificity);
                sessionStorage.setItem("playingStyle",playingStyle);
                sessionStorage.setItem("workingMethod",workingMethod);
                sessionStorage.setItem("workOvertimeAverage",workOvertimeAverage);

                $("#form1").submit();
             }

          });
    });

</script>
0 голосов
/ 11 января 2019

Со всеми другими полями вы явно устанавливаете значение:

<input type="text" ... value="{{foo}}">

Но вы не делаете это с полем workingMethod.

Поскольку это поле <select>, а не поле <input type="text">, как другие, вы не можете установить значение таким же образом; Вы должны добавить атрибут selected="selected" к опции, которую следует выбрать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...