【问题标题】:How to populate an textboxes with query string value(s) from URL如何使用来自 URL 的查询字符串值填充文本框
【发布时间】:2017-03-24 15:07:38
【问题描述】:

我有一个简单的 Window Forms 应用程序,它可以打开一个带有设置参数的网页。

该链接将用户带到一个带有 2 个文本框字段和一个提交按钮的页面。

我正在尝试自动化此过程,以便它获取参数值并将其放入文本框中,然后单击提交。

这是我当前的 windows 窗体代码:

using System;
using System.Windows.Forms;
using System.Diagnostics;

namespace WindowsFormsApplication1 {

public partial class Form1 : Form {

    public Form1() {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e) {
        libLink.Links.Remove(libLink.Links[0]);
        libLink.Links.Add(0, libLink.Text.Length,
            "http://www.example.com/?UserName=value1&FirstName=value2");
    }

    private void libLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) {
        ProcessStartInfo sInfo = new ProcessStartInfo(e.Link.LinkData.ToString());
        Process.Start(sInfo);
    }
}
}

如何创建一个脚本,该脚本采用 URL 中的这些参数来填充两个文本框字段,然后提交表单?

这是我的 HTML 页面:

  <form action="/send" method="post" novalidate="novalidate">
      <input class="form-control" data-val="true" data-val-UserName="Wrong username" data-val-required="Enter a valid Username" id="Username" name="Username" placeholder="Username" type="text" value="">
      <input class="form-control" id="FirstName" name="FirstName" placeholder="First Name" type="text" value="">   
      <button type="submit">Sign In</button>
  </form>

对编码相当陌生,所以我尽量让我的代码保持简单。

我查看了QueryStringsJavaScriptJquery 等可能的方法,但我不确定如何解决这个问题。

【问题讨论】:

  • PHP 与此有什么关系?删除标签。
  • 应用是windows窗体还是web应用?
  • @JonStirling 抱歉,感谢您删除
  • @DannyNguyen Np ;)
  • @LP13 这是一个 Windows 窗体应用程序

标签: javascript c# jquery query-string


【解决方案1】:

确实有几种方法可以做到这一点,但我会给你一个基本的演练,我将如何在 javascript 中使用一些 JQuery 来做到这一点。

我们的起始 URL 有变量:

var url = "http://www.example.com/?UserName=value1&FirstName=value2"
var params_string = url.split("?")[1] //UserName=value1&FirstName=value2

所以首先我们将字符串拆分成一个类似上面的列表,它返回一个由“?”分隔的项目列表字符,但我们只需要第二项(在索引 1 处),因此我们将 [1] 添加到末尾以仅存储该位。

然后我们再次拆分它以获取各个参数。

var params_string_list = params_string.split("&")
["UserName=value1","FirstName=value2"]

它返回一个如上所述的列表,再次需要将其分解,我会将它变成一个像这样的对象:

var params = {}
for(var i =0;i < params_string_list.length;i++ ){
     var temp = params_string_list[i].split("=") // looks like ["UserName","value1"]
     params[temp[0]]= temp[1]
} //params now looks like  {"UserName":"value1","FirstName":"value2"}

因为这使它易于访问和使用。 然后我们可以执行以下操作来设置表单中的值:

if(params.UserName){
    $('#Username').val( param.UserName );
}
if(params.FirstName){
    $('#FirstName').val( param.FirstName );
}

如果有语句来检查对象中是否存在值,因此我们不会意外地将值发送到“未定义”。

希望这会有所帮助。

【讨论】:

  • 感谢您的意见,我将对此进行测试。从你解释的方式来看,它真的很清楚。输入字段后如何提交表单
  • 我有点困惑。 OP 说它的 windows 窗体应用程序,但接受的答案是使用 jQuery
  • @LP13 我是使用堆栈溢出的新手,我想为他的评论点赞,抱歉给您带来了困惑,哈哈。
  • 看起来原始发帖人是在询问他如何以编程方式从 Windows 窗体应用程序中在网页上填写和提交表单,大概是使用 WebBrowser 控件或其他东西。因此,他需要的可能是关于使用充当他的客户端的 WebBrowser 控件的建议,而不是 javascript/jquery 技术。苹果和橙子。
猜你喜欢
  • 2011-04-16
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2016-05-25
  • 2016-11-21
  • 2012-09-27
相关资源
最近更新 更多