【问题标题】:django: Pass specific form data through JQuerydjango:通过 JQuery 传递特定的表单数据
【发布时间】:2013-07-16 17:30:15
【问题描述】:

如何通过 Django 中的 Jquery 传递任何特定的表单值进行处理?我想通过 JQuery 将表单中标签“机器”的值传递给 views.py。这是我的代码:

template.py:

<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">

$(document).ready(
                 function() {  

                    $("#submit").click(function (event) {
                        event.preventDefault();
                        var machine = $("#machine").val();    //taking the machine value
                        var data = { machineID: machine};     //data dictionary
                        var url = "/vsawebauto/automation/results/job_processing";
                        $.getJSON(url, data, function(machines) {
                                $("#progress").text(machines[0].fields['machine_name']);
                        });                            
                      });                           
});
</script>
</head>

<body>
<form name="resultsForm" method="post">
{% csrf_token %}

<br><label id="machine" value="{{ selected_machine }}">Selected Machine: {{ selected_machine }}</label></br>
<br><input type="submit" id="submit" value="Submit Job" /></br>
<br><div class="progress" id="progress"></div></br>
</form>
</body>
</html>

views.py

def job_processing(request):
    machineID = request.POST.get('machineID', False)
    machine = Client.objects.get(pk=machineID)
    isAutomationPkgCopySuccessful = JobRunner.copyAutomationPackage(machine.machine_name,machine.username,machine.password,request)
    availableMachines = runningProcess.ParseMachineList(request)
    json_models = serializers.serialize("json", availableMachines)
    return HttpResponse(json_models, mimetype="application/javascript; charset=UTF-8") 

当我调试代码时,views.py 中的 machineID 具有布尔值 'False'(它应该具有从 templates.py 传递的 $("#machine").val() 的值这是'1')

【问题讨论】:

    标签: django jquery


    【解决方案1】:

    对于初学者,您使用 $.getJSON,然后在 request.POST 中查找 machineID

    你应该使用request.GET.get('machineID', False)

    其次,我想您的表单将通过 POST 提交,在提交按钮上附加点击事件是没有意义的。

    <script type="text/javascript">
    $(document).ready(function() {
    $("#myform").submit(function(event){
        event.preventDefault(); 
        var machine = $("#machine").val();
        var data = { machineID: machine};
        var url = "/vsawebauto/automation/results/job_processing";
        $.getJSON(url, data, function(machines) {
           $("#progress").text(machines[0].fields['machine_name']);
        });  
    });
    </script>
    
    <form id="myform">
      <br><label id="machine" value="{{ selected_machine }}">Selected Machine: {{ selected_machine }}</label></br>
      <br><input type="submit" name="submit" value="Submit"> < /br>
      <br><div class="progress" id="progress"></div></br>
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多