在jQuery事件上更改按钮文本和目标

时间:2012-05-30 01:01:07

标签: jquery button text submit

这是我目前的代码:

$(document).ready(function(){
    $("input#url").bind("textchange",showPage);
    $("input#url").focus();


    $("form#surlform").submit(function(){
        var url = $("input#url").val(); 
        $.get("api/create.php?url=" + url, function(data) {
                $("input#url").val(data);
                $("input#url").select();
            });

        return false;
    });
    });

$(document).click(function(){
    showPage();
});
$(document).mousemove(function(){
    showPage();
});

目前,提交表单时,jQuery会阻止它重新加载页面,只需从API中提取所需的输出即可。 如果可能的话,我想让它也改变按钮,这样按钮文本就不同了,它链接到一个页面而不是用jQuery提交表单。 (如果有帮助,它更改的按钮可以是div - 只有原始按钮需要是表单按钮。)

这不是全部...... 然后我喜欢将BACK更改为当文本字段中的文本被更改时通过jQuery使用原始文本提交表单的按钮。

这是一个很大的问题,但如果有人有办法解决这个问题,我将非常感激。

1 个答案:

答案 0 :(得分:1)

this?:

HTML:

<form id="someForm">
    <input id="someInput" type="text" />
    <input id="submitButton" type="submit" />
    <input id="linkButton" type="button" value="Submit" />
</form>​

CSS:

#linkButton { display: none; }​

JavaScript的:

$('#someForm').submit(function () {
    $('#submitButton').hide();
    $('#linkButton').show();
    return false;
});

$('#linkButton').click(function () {
    alert('use something like window.location here to act like a link');
});

$('#someInput').change(function () {
    $('#linkButton').hide();
    $('#submitButton').show();
});

目前过于简单,可能会有所改善,但这个想法很简单......

  1. 当页面最初加载时,隐藏“链接”按钮。
  2. 每次点击“提交”按钮时,隐藏“提交”按钮,并显示“链接”按钮。 (当然之后你正在做的任何AJAX,为简洁起见,不包括在这里。)
  3. 只要点击“链接”按钮,就可以执行某些操作。在你的情况下,它是作为一个链接,对吗?基本上window.location = 'some new location';
  4. 任何时候文本更改,隐藏“链接”按钮,并显示“提交”按钮。如果它们已被隐藏和显示,则不会造成任何伤害。 (这可能是一种更优雅,更少显示和隐藏的方式,但它可以完成这项任务。)