0

我有一个简单的表单,如果单击某个按钮,则输入字段会被赋予一个值。问题是重新加载页面需要很长时间,我想在不刷新页面的情况下提交它。我尝试过调整不同类型的某些 AJAX、JQuery 脚本,但它们没有奏效,任何人都可以建议一些简单的代码来使用。这是基本示例:

<html>
<form method='POST' action='test2.php'>
<input type='text' name='input_a' value='<?php if($_POST['submit_a'])
{
   echo "test1";
} ?>'>

<input type='submit' name='submit_a' value='a'>
<input type='text' name='input_b' value='<?php if($_POST['submit_b'])
{
    echo "test2";
}?>'>

<input type='submit' name='submit_b' value='b'>
</form>
</html>
4

2 回答 2

1

这是使用 ajax 发布的示例(您必须针对响应调整代码)。我假设您需要发布,因为您概述的场景可以很容易地完全使用 javascript 完成。

$(function(){
    $('input[type="submit"]').click(function(){
         var form = $(this).parents('form');
         var postData = form.serialize();
         postData[$(this).attr('name')] = $(this).val(); // the value for the click won't be retrieved with serialize
         $.post(form.attr('action'), postData , function(data) {
             $('body').html(data);
         });
         return false;
    });
};

如果你可以在不发布的情况下做到这一点,它看起来像这样:

$(function(){
    $('input[name="submit_a"]').click(function(){
        $('input[name="input_a"]').val('test1');
    });
    $('input[name="submit_b"]').click(function(){
        $('input[name="input_b"]').val('test2');
    });
});
于 2012-10-06T00:43:13.320 回答
-1

如果用例真的是这个基本的,我只使用香草 javascript 来调整它。如果需要服务器端访问,此解决方案将无济于事,您将不得不了解有关 Ajax 工作原理的更多信息。

HTML:

<html>
<form>
   <input type='text' name='input_a' id="input_a"/><input type='submit' name='submit_a' value="a" onclick="setInput(this, 'test1'); return false;">
   <input type='text' name='input_b' id="input_b"/><input type='submit' name='submit_b' value="b" onclick="setInput(this, 'test2'); return false;">
</form>
</html>​

Javascript:

function setInput(button, setValue) {
    var buttonVal = button.value,
        textbox = document.getElementById('input_' + buttonVal);

    textbox.value = setValue;
}​

这是在 JSFiddle 中工作的示例:http: //jsfiddle.net/6jpNf/1/

于 2012-10-06T00:42:04.377 回答