按文本框中的回车键打开链接

时间:2017-09-04 16:29:23

标签: javascript jquery html

我有一个脚本,它使用两个文本框来生成链接onkeyup,如果用户在文本框1(所有其他人)中,输入一些文本后按回车键然后"所有cat链接 - sometext 1&#34 ;生成的链接应该被点击,如果他在"类别主要"文本框并输入一些文本,然后按下输入键'主要猫链接 - 某些文字2'应点击链接



var requestedURL: URL?
var comment: Comment? {
    didSet {
        if let myURL = Comment.profileImageURL {
            requestedURL = myURL

            // Fetch image from URL and when response is received, 
            // check self.myURL == response.url

        } else {
            profileImage.image = UIImage(named: "Profile Image")
        }
    }
}

def EMI_calc(principle, rate, time, frequency):
    return (principle / ((1-((1+(rate/frequency))**(-1*(time*frequency))))/(rate/frequency)))

print("""
----- Welcome to EMI programe for Python -----
""")
print("\n You have chosen to know the EMI for Loan.\n")
input('\nTo Continue Press ENTER --- to ABORT Press ctrl+c > \n')

print("\nPlease Enter amount of Loan to be taken: >\n")
principle = int(input())
print("\nEnter rate of interst (%): >\n")
rate = float(input())/100
print("\nEnter Term (Years): >\n")
time = float(input())
print("\nPlease enter the frequency of installments) : >\n")
frequency = int(input())

EMI = round(EMI_calc(principle, rate, time, frequency),0)

print("""

---------------------------------------------------------------------

""")
print(f"""
The EMI for Loan of Rs.{principle};
at interest rate of {rate*100} % for {time} years;
would be: Rs.""", EMI)

print("""

---------------------------------------------------------------------

""")




3 个答案:

答案 0 :(得分:2)

您可以使用解决方案https://jsfiddle.net/L2n6esnc/

allcat = function(e) {
  var myVar = jQuery('#allcat').val();
  $("#anchor").html(`<a target='_blank' href='http://www.example.com/page.php?search=${myVar}&order=DESC'>All cat Link - ${myVar}</a>`);
  return false;
}

catMain = function(e) {
  var myVar = jQuery('#catMain').val();
  $("#anchorMain").html(`<a target='_blank' href='http://www.example.com/page.php?category=main&search=${myVar}&order=DESC'>Main Cat Link - ${myVar}</a>`);
  return false;
}

$('input[type="text"]').keyup(function(event) {
  if (event.keyCode == 13) {
    window.open($('#' + $(this).attr('appendTo') + ' a').attr('href'), '_blank')
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Generate Link</h1>
<table border="0">
  <tr>
    <td>All Others</td>
    <td>
      <input type="text" size="50" name="allcat" id="allcat" onkeyup="allcat()" appendTo="anchor">
    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>Category main</td>
    <td>
      <input type="text" size="50" name="catMain" id="catMain" onkeyup="catMain()" appendTo="anchorMain">
    </td>
  </tr>
</table>

<hr><br>

<span id="anchor">All Category</span><br><br><br>
<span id="anchorMain">Cat main</span>

我使用ES6 backtick${}来使用变量而不是双/单引号。

我没有触发click事件,而是使用了window.open

希望这会对你有所帮助。

答案 1 :(得分:1)

在最终加密时,请勿点击#anchorMain(正如Rory所说,是一个跨度),点击#anchorMain>a

jQuery(document).keyup(function(event) {
      if (event.keyCode == 13) {
          if (event.target.id === 'catMain') {
              jQuery("#anchorMain a")[0].click();     
          } else if (event.target.id === 'allcat') {
              jQuery("#anchor a")[0].click();     
          }
      }
});

请注意在jquery.click()中添加[0]。问题是jQuery()。click()将调用在元素上注册的事件处理程序。唉,导航不是jquery类型的注册处理程序。通过执行jQuery("#anchorMain a")[0],您将获得DOM元素,您将在其上调用DOM .click()...这将执行您想要的操作。

最后,当用户按Enter键时,您需要确定要点击的“哪个”链接。您可以通过查看event.target从document级别执行此操作。

答案 2 :(得分:0)

您可以使用<form>代码并在提交功能内完成工作,例如

<form action="someFunction()">
  First name:<br>
  <input type="text" name="firstname" value="Mickey">
  <br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse">
  <br><br>
  <input type="submit" value="Submit">
</form> 

现在您可以检索函数内部的值并操作或相应地执行您的工作。 我猜的最干净的方式。