更改jQuery事件上的按钮文本和目标
以下是我当前的代码:更改jQuery事件上的按钮文本和目标,jquery,button,text,submit,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, funct
$(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-只有原始按钮需要是表单的按钮)
这还不是全部。。。
然后,当文本字段中的文本被更改时,我希望它改回通过jQuery提交表单的按钮,该按钮包含原始文本
这是一个很大的问题,但如果有人有办法做到这一点,我将非常感激。类似于:
HTML:
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();
});
目前它过于简单,可能需要一些改进,但这个想法非常简单
什么按钮?我们可能需要查看一些HTML。最简单的方法是有两个按钮——一个用于提交,一个用于链接。然后根据状态切换它们。@ChristianVarga上面的jQuery只作用于表单提交,目前根本不与按钮交互。表单HTML只是:谢谢,一切正常!不过最后一件事——在我上面的代码中,您可以看到它将文本框的值更改为API输出的数据。有什么方法可以将其设置为window.location的目标吗?@HenryCole:最简单的方法可能是在所有函数调用之外使用一个变量来存储URL。在AJAX调用中设置它的值,并在单击链接按钮时使用它的值。还要在该单击处理程序中执行一些错误检查,以确保该值在使用它之前是正确的(它是一个URL,等等)。
#linkButton { display: none; }
$('#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();
});