我不是一个优秀的程序员,希望得到帮助。
下面的javascript代码应该将格式为/ update / 1/3的url发送到我的django测试服务器以更新项目。但是,当我尝试时,我只在控制台日志中看到/ update /的帖子。
<script type="text/javascript">
function goTo()
{
var url = '/update';
var quantity = document.forms[0].quantity.value;
var menuitem_id = document.forms[0].menuitem_id.value;
window.location = url+'/'+menuitem_id+'/'+quantity;
return false;
}
</script>
我做错了什么?
根据要求,请参阅HTML:
<div class="container">
<td class="table">
<form method="post" action="." onsubmit="return goTo()">
<div>
{% csrf_token %}
{% if item %}
<label for="quantity">How much {{ item.product.name }} from {{ item.product.restaurant.name }} do you want?</label>
<input style="height:25px;font-size:12pt;" type="text" name="quantity" value="{{ item.quantity }}" id="quantity" size="2" class="quantity" maxlength="5"/>
<input type="hidden" name="menuitem_id" value="{{ item.product.id }}" id="menuitem_id"/>
</td>
<td>
{% endif %}
</div>
<button class="btn btn-primary" type="submit">Update</button>
</form>
</td>
</div>
答案 0 :(得分:0)
您发布的代码看起来不错。确保“quantity”和“menuitem_id”是页面上第一个表单中输入的名称(而不是id)(表单[0])。例如,很多时候,人们忘记了页面顶部的搜索栏在技术上是第一种形式。
此外,如果这些输入是用户指定的,并且您期望它们始终是数字,那么它也可能有助于清除任何不需要的字符,例如:
var quantity = document.forms[0].quantity.value.replace(/[^0-9]/g,'');
..将从输入中删除任何非数字字符。这样可以防止空格混乱URL路径,也可以帮助(一点点)保护用户免受JavaScript注入攻击。