我想使用提交绑定提交表单,但它不起作用。在我的形式我只有textarea字段。我怎样才能做到这一点。当我按下回车键时,它只是到文本区域的下一行,但不提交表格。我正在使用phonegap开发我的移动应用程序,因此输入密钥代码13将无法正常工作。这是我的表格。
<form data-bind="submit:EditQuestion" method="post" data-ajax="false">
<textarea placeholder="Answer" data-bind="value:Answer"></textarea>
</form>
答案 0 :(得分:0)
如果无法从手机中检测到ENTER键,您可以添加一个自定义绑定处理程序来监视<textarea>
,然后在看到ENTER字符时调用EditQuestion
函数。然而,可能不是最优雅的解决方案。
修改<textarea>
以包含新的绑定处理程序。我将其命名为textAreaEditQuestion
:
<textarea placeholder="Answer" data-bind="value:Answer, textAreaEditQuestion:Answer"></textarea>
这是自定义绑定处理程序(每100毫秒轮询一次):
ko.bindingHandlers.textAreaEditQuestion = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var handle = setInterval(function () {
var index = element.value.indexOf('\n');
if (index !== -1) {
// we found an ENTER key so stop monitoring
clearInterval(handle);
// grab the value minus the ENTER key
var value = element.value.substr(0, index);
// set the value in your ViewModel
valueAccessor()(value);
// call the EditQuestion function
viewModel.EditQuestion();
}
}, 100);
}
};