从工具提示html元素中获取价值

时间:2015-05-16 22:04:40

标签: javascript jquery html

我有一个图像,显示用户在周围时有一些文本字段(用户名和密码)作为工具提示。

<div class="user-pos">
    <ul id ="users" class="user-list">
        <li id="def-html" data-tooltip="#html-content"><img src="img/new.png" /></li>
    </ul>
    <div id = "html-content" style="display:none;">

        <p class="newuser">Create a new user account</p>
        <br/>
        <div class="col-lg-6">
            <label for="createUsername">Choose a username</label>
            <input type="text"  id="createUsername" required autocomplete="name">
            <label for="createPassword">Enter your password</label>
            <input type="password"  id="createPassword" required value="gdh" autocomplete="name">
        </div>
        <div class="col-lg-6">
            <label for="createEmail">Enter your email</label>
            <input type="text"  id="createEmail" required>
            <label for="createPasswordVerify">Confirm password</label>
            <input type="password"  id="createPasswordVerify"  required >
        </div>
        <div class="userbut"><button onclick="createAccount()"class="btn btn-sm btn-info">Create Account</button></div>

    </div>
</div>

此javascript函数用于从这些字段中获取值并使用它。

function createAccount() {
    var password = $('#createPassword').val();
    var veriPas = $('#createPasswordVerify').val();
    var username = $('#createUsername').val();
    var email = $('#createEmail').val();
    if (email.trim() === "") {
        alert('email  is empty');
    } else if (password.trim() === "") {
        alert('password  is empty');
    } else if (password != veriPas) {
        alert('Password did not match');
    } else {
        var isReg = app.regUser(email, password, 1, false);
        if (isReg) {
            alert('user created');
        } else {
            alert('no user creation');
        }
    }
}

问题是字段始终为空。当div&#34; html-content&#34;时,js代码有效。不是用作工具提示,但如果用户在图像周围显示为工具提示,则会失败。我该如何解决这个问题

2 个答案:

答案 0 :(得分:1)

在你的html中,密码输入框的ID为&#34; frmNameA&#34; 但是在你的JavaScript函数中,你用

引用它
var password = $('#createPassword').val();

检查输入的ID是否与您的功能使用的ID相同。

答案 1 :(得分:1)

更新

这可能有用......

$('#def-html').tooltip({
    content: $("#html-content").html()       
})

试试这个,我不确定如何设置数据工具提示范围,但这可能会有所帮助。

或尝试$('body input#createPassword').val();

此外,您可以将div放在自己的文件中,并使用CSS内容将其与url一起调用,并结合我在此处提供的选择方法之一。

#html-content:hover:after {
    content: " (" url('myfilewithdivinit.html') ")";
}

使用.find()的示例,如果将它与上面的CSS内容方法结合使用,这可能也会有用....

function createAccount() {
    var password = $('body').find('input#createPassword').val();
    var veriPas = $('body').find('input#createPasswordVerify').val();
    var username = $('body').find('input#createUsername').val();
    var email = $('body').find('input#createEmail').val();
    if (email.trim() === "") {
        alert('email  is empty');
    } else if (password.trim() === "") {
        alert('password  is empty');
    } else if (password != veriPas) {
        alert('Password did not match');
    } else {
        var isReg = app.regUser(email, password, 1, false);
        if (isReg) {
            alert('user created');
        } else {
            alert('no user creation');
        }
    }
}

此外,您应该为按钮添加类型属性。

<button type="button" onclick="createAccount()"class="btn btn-sm btn-info">Create Account</button>