не может получить значение из поля электронной почты функцией jquery val (), если указан идентификатор электронной почты - PullRequest
0 голосов
/ 24 февраля 2019

Я занимаюсь разработкой приложения codeigniter.Моя проблема заключается в том, что когда я задаю идентификатор электронной почты при вводе электронной почты в формате html5, он не может быть доступен с помощью функции jquery val(), но когда я даю любое другое значение, кроме формата идентификатора электронной почты, к нему можно получить доступ.
Это мой HTML,

<html>
    <head>
        <title>
                Personal Cash Book
        </title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="<?php echo base_url();?>assets/CSS/login.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    </head>

    <body>


                    <div class="bg login">
                        <div class="container">
                            <div class="row">
                                <div class="col-md-9 col-md-push-3">
                                    <div class="page-header">
                                        <h3>
                                            <b>
                                                Personal Cash Book
                                            </b>
                                        </h3>


                                    </div>

                                        <form>
                                        <div class="form-group">
                                            <label class="form-label" for="username">
                                                USERNAME
                                            </label>
                                            <input type="email" id="username" name="email" class="form-control"  required >
                                        </div>


                                        <div class="form-group">
                                            <button type="button" id="sub" class="btn btn-danger">
                                                Submit
                                            </button>


                                        </div>
                                    </form>
                                        <h3>
                                            <?php echo $this->session->flashdata('message');?>
                                        </h3>



                                </div>
                            </div>


                        </div>

                    </div>

                    <div class="container footer-section">
                        <div class="row">
                            <div class="col-md-12">
                                <footer >
                        All rights reserved.Created By&nbsp; <a href="http://www.christalinfotech.com" class="author" target="_blank"> Bibin Paul.P</a>&nbsp;&nbsp; Licenced to Sido Antony
                    </footer>
                            </div>
                        </div>

                    </div>

                    <script>
                        $(document).ready(function()
                        {
                            $(document).on('click','#sub',function()
                            {
                                var email=$('#username').val();
                                $.post('<?php echo base_url();?>master/reset-password/'+email+'/',function(data)
                                    {
                                        alert(data);
                                    }
                                );
                            })
                        })
                    </script>


    </body>
</html>

Это мой контроллер,

<?php

class Master extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->library('encryption');
    }

    public function index()
    {
        $this->load->view('login');
    }

    public function login()
    {
        $this->form_validation->set_rules('email','USERNAME','xss_clean|required|valid_email');
        $this->form_validation->set_rules('password','PASSWORD','xss_clean|required');
        $this->form_validation->set_error_delimiters('','');
        if($this->form_validation->run()===FALSE)
        {
            if(form_error('email'))
            {
                $this->session->set_flashdata('message',form_error('email'));
            }

            else
            {
                $this->session->set_flashdata('message',form_error('password'));
            }

            $this->load->view('login');
        }

        else
        {
            $email=$this->input->post('email');
            $password=$this->input->post('password');

            $data=$this->common->login($email,$password);
            if($data)
            {
                $this->session->set_userdata('user_data',$data);
                redirect('/dashboard');
            }

            else
            {
                $this->session->set_flashdata('message','Incorrect credentials');
                redirect('/');
            }

        }
    }

    public function logout()
    {
        $this->session->unset_userdata('user_data');
        $this->session->set_flashdata('message','You are logged out successfully');
        redirect('/');
    }

    public function forget_password()
    {
        $this->load->view('forget_password');
    }

    public function reset_password($email)
    {
        echo "password reset".$email;
    }
, 

?>

Цель - я хочу проверить, существует ли имя пользователя или нет. Я использовал скрипт jquery для реализации его в качестве функции ajax.не поддерживается в codeigniter , когда включена защита csrf.Я использую поле ввода электронной почты html5 для ввода имени пользователя, его идентификатор - имя пользователя.Я мог бы получить ответ со стороны сервера, когда я предоставляю значение, отличное от идентификатора электронной почты, но когда я даю идентификатор электронной почты, ответа не получается.Это моя проблема

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Вот ваш скрипт проверен и работает нормально:

<script>
    $(document).ready(function() {
        $(document).on('click','#sub', function() {
            var email = $('#username').val();
            $.get('<?php echo base_url('welcome');?>/test?email='+email, function(data) {
                alert(data);
            });
        });
    });
</script>

Больше ничего не изменилось, и он правильно получает значение письма.

0 голосов
/ 24 февраля 2019

возможно ли, что эта строка мешает id = "username"?

<label class="form-label" for="username">

не уверен, что jquery выбирает первый экземпляр username, который не будет иметь значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...