【问题标题】:How can I pass the name of the field in form_error ()如何在 form_error() 中传递字段名称
【发布时间】:2014-01-08 11:30:26
【问题描述】:

这是我观点的一部分。我需要传输输入名称,我点击它。 下面是一个脚本,点击后会得到名字输入

<div class="form_hint"><?=form_error('this get value from javascript after click')?></div>

        <?php echo form_open("onenews/" . $onenews['id'] . "#signup", $form_reg['main_form']); ?>      
        <?php echo form_input($form_reg['login'], $this->form_validation->set_value('login')) ?>
        <?php echo form_input($form_reg['email'], $this->form_validation->set_value('email')) ?>
        <?php echo form_input($form_reg['password']) ?>
        <?php echo form_input($form_reg['conf_password']) ?>
        <?= MY_Controller:: create_captcha(); ?>
        <?php echo form_input($form_reg['captcha']) ?>
        <?php echo form_input($form_reg['submit']) ?>   
        <?php echo form_close(); ?>
    </div>  
</div>

jq

<script type="text/javascript">
        $(function(){
            var curInput = '';
            $('#form_reg').find('input').on('click', function(){
                curInput = $(this).attr("name");
            });

        })
    </script>

或者我必须使用 ajax? 谢谢!

【问题讨论】:

    标签: javascript php jquery codeigniter validation


    【解决方案1】:

    您的问题根本不清楚,但我假设您想动态更改 form_hint div 的内容。你不能用 PHP 做到这一点。一旦 PHP 呈现页面,它就会关闭并且不再执行任何操作。因此,让 PHP 显示该消息的唯一方法是在表单提交之后,但随后您会丢失点击数据。例如,有一种方法可以在会话中保存单击的元素,但这将是一个非常糟糕的解决方案。

    所以最好的解决方案可能是在一个 JavaScript 变量中列出所有提示,并在点击事件时调用适当的提示,并用它填充 form_hint div。

    $('.form_hint').text(yourAppropriateMessageHere);
    

    登录输入字段的隐藏 div 与您所描述的完全相同的示例是:

    <div class="form_text_login"><?=form_error('login')?></div>
    

    JS

    var loginMessage = $('.form_text_login').text();
    // list others here
    // then make a tree with switch/case or if/else
    if (curInput == 'login') {
        $('.form_hint').text(loginMessage);
    }
    else if (curInput == 'email') {
        // do the same with the email message, etc.
    }
    

    【讨论】:

    • 对不起我的英语。我看到了一种解决方案,在使用 js 显示错误后,我可以在隐藏跨度的页面中输入所有错误。 error1 error2
    • 嗨,是的,这会起作用,您只需要一种方法来区分所有跨度 - 使用 id 或类将是最简单的(就像我对 div 所做的那样)
    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 2013-03-20
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多