3

我有(xupload)blueimp 插件的这个模板:

<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload fade">
    <td class="preview"><span class="fade"></span></td>
    <td class="title"><label>Title: <input type="text" name="title" required></label></td>
    <td class="name"><span>{%=file.name%}</span></td>
    <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
    {% if (file.error) { %}
        <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td>
    {% } else if (o.files.valid && !i) { %}
        <td>
            <div class="progress progress-success progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="bar" style="width:0%;"></div></div>
        </td>
        <td class="start">{% if (!o.options.autoUpload) { %}
            <button class="btn btn-primary">
                <i class="icon-upload icon-white"></i>
                <span>Start</span>
            </button>
        {% } %}</td>
    {% } else { %}
        <td colspan="2"></td>
    {% } %}
    <td class="cancel">{% if (!i) { %}
        <button class="btn btn-warning">
            <i class="icon-ban-circle icon-white"></i>
            <span>Cancel</span>
        </button>
    {% } %}</td>
</tr>
{% } %}
</script>

我正在尝试运行此 javascript 代码,但它不起作用,但是当我在控制台中运行它以使其工作时,页面加载完成时让它运行的方法是什么

<script type="text/javascript">
jQuery(document).ready(function(){
    $("input[type=text]").focus(function(){
        alert('some text');
    });
});
</script>

就我而言,我使用的是 yii 扩展 (select2) 这个扩展生成 javascript 选择:

<script id="template-upload" type="text/x-jQuery-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload fade">
    <td class="preview">
        <span class="fade"></span>
    </td>
    {% if (file.error) { %}
        <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td>
    {% } else if (o.files.valid && !i) { %}
        <td>
            <label><?php echo CHtml::label('Keywords', 'keywords'); ?></label>
            <?php
                echo CHtml::textField('tags',$selected,array('id'=>'tags'));
                $this->widget('ext.select2.ESelect2',array(
                  'selector'=>'#tags',
                  'options'=>array(
                    'tags'=>$tags,
                    'width'=>'400px;',
                  ),
                ));
            ?>
        </td>
        <td>
            <div class="progress progress-success progress-striped active"><div class="bar" style="width:0%;"></div></div>
        </td>
        <td class="start">{% if (!o.options.autoUpload) { %}
            <button class="btn btn-primary">
                <i class="icon-upload icon-white"></i>
                <span>Start</span>
            </button>
        {% } %}</td>
    {% } else { %}
        <td colspan="2"></td>
    {% } %}
    <td class="cancel">{% if (!i) { %}
        <button class="btn btn-warning">
            <i class="icon-ban-circle icon-white"></i>
            <span>Cancel</span>
        </button>
    {% } %}</td>
</tr>
{% } %}
</script>
4

1 回答 1

0

对不起,有一个高等级的异步问题。

MVC 封装了两个MVC(什么都可以),

  1. 主要是 DB(模型)、HTML(视图)、PHP(控制器)- 服务器端。
  2. 其次是 JSON/AJAX(Model)、Template(View)、JavaScript(Controller) - 客户端。

第一个 MVC 没问题,第二个是不好的做法。

  1. 您在辅助视图静态中从主 MVC 调用模型 - 而不是通过辅助控制器(Javascript)将其从主 MVC 引导到辅助视图!
  2. alert("一些文字"); 绑定一次(在第一次访问此页面时)到所有可见的输入字段(未附加模板中的输入)。请理解,此代码不会触发对稍后呈现的输入文本的“警报”。

一般来说,将Primary-PHP与Secondary-Template分开就可以成功,因此必须将信息通过Primary-Controller,Primary-View,Secondary-Model,Secondary-Controller引导到Secondary-View!

我知道这是很多工作,但这是清理的唯一方法。

于 2013-03-25T06:58:37.033 回答