如何在form_error()中传递字段的名称

时间:2014-01-08 11:30:27

标签: javascript php jquery codeigniter validation

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

后会输入名称
<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? 谢谢!

1 个答案:

答案 0 :(得分:0)

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

所以最好的解决方案可能是列出JavaScript变量中的所有提示,并在click事件中调用相应的提示,并用它填充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.
}