使用javascript清除文本字段中的Laravel Session值

时间:2015-07-07 16:52:16

标签: javascript php laravel

点击其中的十字按钮,我试图清除文本字段中的值。

HTML MARKUP

<input type="text" 
    placeholder="I want to go..." 
    class="nom-fields" 
    value="{{Session::get('place')}}" 
    name="place-city" 
    id="geocomplete">
<input type="reset" 
    id="clear-input-close" 
    class="clear-input-close" 
    value="" 
    onclick="JavaScript:eraseText();">

JAVASCRIPT

function eraseText() {
    document.getElementById('geocomplete').value = '';
}

如果Session::get('place')为空,则工作正常。但如果它有一些值,则textfiled将被清除并立即恢复该值。如何在文本字段中清除值?

2 个答案:

答案 0 :(得分:2)

Laravel Session在服务器端处理,因此您需要从那里清除它。一种方法是这样的。

注意:这使用jQuery,如果你不是,用javascript命中一个url只是更多涉及。 Check out this question for more details.

<强> AnyController.php

    public function clearSessionKey($key)
    {
        if (Session::has($key))
        {
            Session::forget($key);
        }
    }

<强> routes.php文件

    Route::get('clear/session/{key}', 'AnyController@clearSessionKey');

<强>的JavaScript

    function eraseText() {
        document.getElementById('geocomplete').value = '';

        $.getJSON("/clear/session/place",
        function(data) {
            //doSomethingWith(data); 
        }); 
    }

答案 1 :(得分:0)

以下似乎有效:

<input type="text" placeholder="I want to go..." class="nom-fields" value="12345" name="place-city" id="geocomplete">
<input type="reset" id="clear-input-close" class="clear-input-close" value="✖" onclick="eraseText()">
<script>
    function eraseText() {
        document.getElementById('geocomplete').value = '';
    };
</script>

It clears whatever is in the text field.

我认为您的问题可能是在您加载JavaScript功能时,或者您在onclick中使用它的方式。

如果右键单击该页面,然后选择Inspect element,则会出现一个console标签,显示javascript错误。这可以让你更好地了解具体的错误。