【问题标题】:How to make live preview based on information entered in a form? PhP/ajax?如何根据表单中输入的信息进行实时预览? PhP/ajax?
【发布时间】:2012-01-14 09:43:33
【问题描述】:

我正在做一个项目,在其中实现“实时预览”功能会非常方便。问题是它不是某种类型的文本预览“例如,当您创建问题时,就像在 stackoverflow 上一样”。我正在做的事情略有不同。例如,我有一个带有(背景颜色、填充值、边距值等)输入的表单,每次用户更新其中一个输入时,我都不想在表单旁边显示更新对象的预览,让我们这样说对象根据用户在表单中输入的内容采用 div 样式。

我怎样才能实现这个功能?

基于 jQuery 的解决方案更可取。

编辑:说这就是表单的样子

<form id="div_builder">
   <input type="text" name="background_color"/>
   <input type="text" name="padding"/>
   <input type="text" name="margin"/>
</form>

【问题讨论】:

  • 那么实际的问题是什么?使用 javascript 更新每个字段值更改的预览 div

标签: php jquery html css ajax


【解决方案1】:

change event 是您的朋友。每次更改时,调用一个函数,将所选属性分配给您要显示的 div。

【讨论】:

    【解决方案2】:

    不是 testet,但应该可以工作(使用 jquery)...

    <form id="div_builder">
       <input type="text" name="background-color"/>
       <input type="text" name="padding"/>
       <input type="text" name="margin"/>
    </form>
    
    <div id="object"><img src="some object" /></div>
    
    <script type="text/javascript">
    $('#div_builder input').change(function(){
       var css = $(this).attr("name");
       $("#object").css(css,$(this).val());
    })
    </script>
    

    【讨论】:

    • 为什么是.attr("value") 而不是.val(),只是好奇
    • 你在哪里提到 .attr("name") 你的意思是输入的名称正确吗?所以基本上我会为每个输入复制你的代码 3 次并更改“名称”和 css “值”对吗?
    • 不,它会捕获给定形式的所有输入...输入的名称必须是它应该更改的 css 值的名称。不要更改函数中的某些内容,它将按原样工作
    • @zerkms 我经常使用 attr("value") 因为某些字段不支持 .val()
    • 我试过了,还是不行。也许我做错了什么,这是我目前所拥有的 jsfiddle.net/yUKQ4/1 我认为它可能是 .vak 部分,我如何从那里的输入中增加价值?
    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多