post - 带有 ng-option 的 Angular 选择在发布表单时发送索引而不是值

标签 post angularjs html-select

当我发布带有 Angular 选择的表单时,它会发送所选选项的数组索引,而不是其值。我需要发送字符串,因为服务器不知道这些索引。我怎样才能解决这个问题?

来自 jsfiddle.net/2SuZG :

<form method="post" action="/my/post/endpoint">
    <select name="resource" ng-options="r for r in ['a', 'b']"
            ng-model="selectedResource"></select>
    <button type="submit">Save</button>
</form>

您可以从 fiddle 中的控制台输出中看到发布的表单正在发送 resource=0 ,但我想要 resource='a' . (注意:在我的 fiddle 中,我正在序列化表单,但这只是为了看看它会发布什么。在我的应用程序中,我实际上是发布到一个真正的端点。)

这类似于 this question ,但答案是“不要担心值(value)”。但就我而言,我发布了一个表格,所以我关心它的值(value)。我一定在这里遗漏了一些非常基本的东西。谢谢!

最佳答案

您不应该使用 jquery 序列化您的表单,因为您在 $scope 中拥有所有相关数据,这就是您想要序列化的内容(您将使用 $http 或 $resource 发布的某些子集或某些对象) .如果您对自己的方法不满意,请使用数据元素的真实名称创建一个隐藏输入:http://jsfiddle.net/2SuZG/1/

<select name="resourceTemp" ng-options="r for r in ['a', 'b']"
        ng-model="selectedResource"></select>
<input type="hidden" name="resource" value="{{selectedResource}}" >

我不会推荐这个,但这是你想要做的。

关于post - 带有 ng-option 的 Angular 选择在发布表单时发送索引而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16762664/

相关文章:

ruby - 在文件系统中存储图像会破坏文件。有没有更好的方法来写这个?为什么我会收到损坏的文件?

javascript - 通过 Nightmare js获取Ajax请求

javascript - 我的 ng-table 没有显示任何内容

javascript - 使用 AngularJS 从输入中剪切特定值后的字符串

c - 在c中通过https发布json数据

python - 使用 Python 请求发布到 CloudApp API (AWS)

angularjs - bower-angular-bootstrap3 存储库移到了哪里?

html - 更改 <select> HTML 表单的边框颜色

jquery-select2 - 在 Select2 事件中获取选中的选项,当可以选择多个选项时

javascript - 是否有 JavaScript "select box reveal"事件或类似事件? (使用 jQuery)