从HTML按钮访问Javascript对象

时间:2018-03-23 20:47:43

标签: javascript html5

您好我正在尝试找出如何在单击按钮时触发JavaScript对象方法。部分JavaScript如下:

function TaxiShare() {
this.register = function () { 
var username = get_name_value('name', 'user1'); 
$.post('http://website/users', {
    USERNAME: username
        }, function (data) {
            var obj = $.parseJSON(data);
            if (obj.status == "fail") {
                alert('User ' + username + ' is already registered.');
            } else {
                alert('User ' + username + ' has been successfully registered.');
            }
        }
        );
    }; 
}

我习惯使用以下HTML:

<input type="button" value="Register" onClick="nameOfFunction">

我无法解决的是在onClick中放入什么来使函数this.register = function()触发。

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:1)

您必须实例化该类并使用该对象

function TaxiShare() {
this.register = function () { 
var username = get_name_value('name', 'user1'); 
$.post('http://website/users', {
    USERNAME: username
        }, function (data) {
            var obj = $.parseJSON(data);
            if (obj.status == "fail") {
                alert('User ' + username + ' is already registered.');
            } else {
                alert('User ' + username + ' has been successfully registered.');
            }
        }
        );
    }; 
}

var taxiShare = new TaxiShare();

并在HTML中

<input type="button" value="Register" onClick="taxiShare.register()">

答案 1 :(得分:1)

你需要返回这个并分配使taxiShare实例全局 - 这是一个例子 - https://jsfiddle.net/b2qjymwh/3/

<input type="button" value="Register" onClick="taxiShare.register();">

function TaxiShare() {
    this.register = function () { 
    $.get('https://jsonplaceholder.typicode.com/posts/1')
      .then(function (data) {    
        console.log(data);
        //alert(data);
    });    
    }

  return this;
}

taxiShare = new TaxiShare();