我创建了一个web.py网址,它只提供了2个文本框(无提交按钮)。当我在第一个文本字段中键入数字时,它应该将值发布到另一个URL中。通过使用AJAX post()
我想将数据发布到第二个URL。第二个URL应该返回我发布的数据,它应该显示在第二个文本框内。如何通过使用key up函数和AJAX post()
方法解决此问题?我用post()
方法尝试了很多,但我找不到合适的解决方案。
答案 0 :(得分:2)
我找到了解决方案,感谢您提出的所有建议,我已将完整的代码附加到建议的更改中。
import web
urls = (
'/', 'first','/home','second')
app = web.application(urls, globals(), True)
class first:
def GET(self):
return'''
<html>
<head>
<script type="text/javascript"src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#text1").keyup(function(){
var txt = $("#text1").val();
$.post(
"http://127.0.0.1:8080/home",
{text1 : txt},
function(result){
$("#text2").val(result);
});
});
});
</script>
</head>
<body>
Enter your text here : <input type="text" id="text1" name="text1"/>
You entered : <input type="text" id="text2"/>
</body>
</html>'''
class second:
def GET(self):
return "Entered value goes here"
def POST(self):
i = web.input()
n = i.text1
return n
if __name__ == "__main__":
app.run()
答案 1 :(得分:1)
试试这个
$(function(){
$("#textbox1").keyup(function(){
if($(this).val()){
$.post({
url: "urlToPost",
data: { "textbox1": $(this).val() },
success: function(data){//make sure the server sends only the required data
$("#textbox2").val(data);
}
});
}
});
});
答案 2 :(得分:1)
你能发布到目前为止的内容吗?这看起来非常严格..
示例:
$(document).ready(function () {
//Bind to keyup + change to account for Copy/Paste with mouse button.
$("#Textbox1Id").bind("keyup change", function () {
$.ajax({
url: 'yoururl',
type: 'POST',
data: { value: $("#Textbox1Id").val() },
dataType: "json",
beforeSend: function () {
},
success: function (result) {
$('#Textbox2Id').val(result.value);
},
error: function (result) {
//Handle error
}
});
return false;
});
};
Shankar打败了我......基本上相同的答案只是确保你也绑定了更改事件,并处理任何错误。