2014-09-05 101 views
0

on node.js中的点击事件不起作用,但简单的文本输入work.i希望当你点击按钮(在我的情况下,两个按钮)两个不同的事件发生,但它不起作用。这两个不同的事件在页面内附加DOM。其中一个按钮的值为'X',另一个按钮的值为'O',我想只按钮的值附加DOM。我怎样才能做到这一点? 这是代码--->Onclick事件不能正常工作

我的剧本是 -

 $(function() { 


      var socket = io.connect(window.location.href); 


      socket.on('message:server', function(data) { 
       $("#messages").append(
        '<li style="color:red">' + 
        data.message + ' - ' + 'received' + ' ' + new Date() + 
        '</li>' 
       ); 
      }); 


      $("#message_form").on('submit', function(event) { 


       event.preventDefault(); 


       var $input = $('[name="message"]') 
       var message = $input.val(); 


       if (message) { 
        socket.emit('message:client', {message: message}); 
       } 


       $("#messages").append(
        '<li style="color:green">' + 
        message + ' - ' + 'sent' + ' ' + new Date() + 
        '</li>' 
       ); 


       $input.val(''); 
      }); 


      socket.on('error', function() { 
       console.error(arguments) 
      }); 
     }); 

在车身到位形式的标签 -

<form id="message_form" method="post"> 
     <input name="message" placeholder="Message to send" type="text"/> 
     <button type="submit">Submit</button> 
    </form> 

在这里下我要2个按钮,可运行此使用默认的固定值。

+0

这里简单的文字输入聊天服务器使用node.js,但在这里我不想让用户输入,而不是他们只需点击修复值按钮,并在DOM中打印出该值。 – Tushar 2014-09-05 14:52:13

+0

你能告诉我们代码吗? – 2014-09-05 16:51:37

+1

这与node.js有什么关系?你的问题是关于客户端DOM编码的吗? – 2014-09-05 22:14:05

回答

0

如何在DOM中创建两个按钮并调用.on('click', function(){})而不是submit

Like : 

<button id="value1">Send value 1</button> 
<button id="value2">Send value 2</button> 

然后您只需在click事件上设置功能。我添加了注释你的代码,以显示你可以删除的内容:

$("#value1").on('click', function(event) { 

    event.preventDefault(); 

    // var $input = $('[name="message"]'); 
    // You don't need fix since you send "fixed" value 
    var message = "Value 1" // Or whatever you want instead of $input.val(); 

    // if (message) { 
    // No need of condition since you set the value 
    socket.emit('message:client', {message: message}); 
    // } 

    $("#messages").append(
    '<li style="color:green">' + 
    message + ' - ' + 'sent' + ' ' + new Date() + 
    '</li>' 
); 

    // $input.val(''); 
}); 

你只需做同样的你的按钮2. 在这个例子中,你会打电话:

$('#value2').on('click', function(){ 
    // Same as value with another message value 
}); 
+0

谢谢,它的工作! – Tushar 2014-09-06 16:30:33