jQuery / JavaScript - 在<span> -placeholders </span>中显示文本输入的值

时间:2010-08-12 19:38:33

标签: javascript jquery

我非常谨慎地制定了我自己!

我将重新开始:)我感谢您的好答案,如果可以,请尝试回答:(这次我会尝试更具体)

我想要的是,提交一个<form>元素,点击一个按钮或任何具有<input type="text" value="Default value">值的内容并将其插入到几个<span>元素中,我喜欢称为“占位符”。这个样本可能会更好地解释它:

<head>
<script type="text/javascript">
$(document).ready(function() 
{
$("input[type=button]").click(function //click the button
{ do_the_magic_thing() //make the value from id="txt_inp" appear in class="placeholder"
}); 
});
</script>
</head>

<body>
<form method="POST" action="" id="theForm"> //could also be get, I don't care
<input type="text" id="txt_inp" value="Default Value" onfocus="if (this.value == Default Value) this.value=''"> //this SHOULD make the Default Value dissapear on focus
<input type="button"> //could also be a submit

<span class="placeholder"></span> //$("#txt_inp").value; goes here
<span class="placeholder"></span> //$("#txt_inp").value; goes here
</body>

现在,这真的很简单吗?:

var do_the_magic_thing = function() {
$(".placeholder").html = $("#txt_inp").value;
};

我现在要睡觉了 - 在丹麦已经很晚了:)明天我会回答你的意见:))

旧帖子:

<击> 我是非常这个jQuery的新东西,但我确实理解基础知识和所有。让我们简化并说我有一个看起来像这样的表格:

<form method="POST" action="">
<input type="text" value="Default value">
<input type="submit" value="Click me">
<input type="hidden"> //hidden is for being able to submit by hitting enter
</form>

我尝试过使用$.post,但我无法做到正确;它不适合我。

现在,我想取消提交(不能通过在返回值的函数中添加return false;来实现,如果有这样的话吗?),但这并不重要。< / p>

我想我输入了类似

的内容

$.post("test.php", function(data) {
alert("This is the data submitted (and cancelled):" + data);
}); //I have also tried without the "test.php", that's not it

你能告诉我,我做错了吗? :)

没有必要取消提交,但我希望如此 也没有必要,POST是使用的方法,但再一次,这是我喜欢的

5 个答案:

答案 0 :(得分:2)

将表单的ID更改为“myform”或其他任何内容以及输入“myinput”的文本名称,并尝试这样的内容......

$(document).ready(function() {
    $('#myform').submit(submitMyForm);
})

function submitMyForm(e) {
    var data = new Object();
    data.whatever = $('#myinput').val();

    var post = new Object();
    //here I use a jquery json extension...you can use anything you like
    post.data = $.toJSON(data);

    $.post("test.php", post, function(returnval) {
        alert(returnval);
    }, "text");

    //this is to stop the normal form submit action
    return false;
}

然后在你的test.php中你可以通过调用$ _POST ['data']来访问它(当我们创建名为“data”的“post”对象的属性时我们指定了这个:post.data ='whatever ”。

答案 1 :(得分:1)

我认为你想要做的是这样的事情:

<fieldset id="myData">
    <legend>My Data</legend>
</fieldset>

<form id="myForm" method="POST" action="">
    <input type="text" value="Default value">
    <input type="submit" value="Click me">
    <input type="hidden"> //hidden is for being able to submit by hitting enter
</form>

$(function() {
   $('#myForm').submit(function() {
      //do whatever you want here.
      //this will take place after the form is submitted, but before your ajax request
      $('input[type=text]').each(function() {
          $('#myData').append('<div class="placeholder">' + $(this).val() + '</div>');
      });

      //serialize your form data
      var toSubmit = $('input[type=text]').serialize();

      //do ajax here
      $.post('test.php', toSubmit, function(data) {
        alert('Your AJAX POST request returned: ' + data);
      }, 'text');

      //this will prevent the form from submitting normally
      return false;
   });
});

以下是此操作的演示:http://jsfiddle.net/SA3XY/

另见我对你的问题的评论。

答案 2 :(得分:1)

要回答你问题的修订版,是的,它真的很简单,虽然你的“做神奇的事”功能的正确语法如下:

var do_the_magic_thing = function() {
    $('.placeholder').html($('#txt_inp').val());
};

P.S。不要过分担心不表达自己,你的英语比我的丹麦语要好得多。

答案 3 :(得分:0)

对于表单提交,您需要将以下内容添加到表单中以取消默认提交事件:

<form onsubmit="return functioncall();">

然后,当您从函数返回false时,它将取消默认的表单操作。

编辑:如果您想查看要提交的所有数据,可以使用jquery serialize()方法或serializeArray()方法序列化表单。

答案 4 :(得分:0)

如果您正在尝试完成验证,那么有一种更简单的方法,只需使用像这样的验证插件: http://docs.jquery.com/Plugins/Validation

使开发自己的代码变得更容易并且让人头疼。 Jquery可以很容易地开发出功能强大的javascript应用程序...但有时候使用已经编写和调试的东西(至少在大多数情况下)更容易。